mfront-wrapper issueshttps://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues2020-04-15T15:01:46Zhttps://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues/13Energy in OptimisationProblem2020-04-15T15:01:46ZJeremy BLEYEREnergy in OptimisationProblemCurrently we rely on the explicit computation of the total energy from MFront, can we define it based on the default setting ?
```math
E = \sum_{i=1}^p \frac{1}{2}\sigma_i(u)\cdot\mathbf{g}_i(u)
```Currently we rely on the explicit computation of the total energy from MFront, can we define it based on the default setting ?
```math
E = \sum_{i=1}^p \frac{1}{2}\sigma_i(u)\cdot\mathbf{g}_i(u)
```https://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues/10Refactor code2020-03-16T09:26:47ZJeremy BLEYERRefactor codeRefactoring small code duplicates involving internal/external state variables names and sizesRefactoring small code duplicates involving internal/external state variables names and sizeshttps://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues/9Handle plate models2020-03-09T22:43:49ZJeremy BLEYERHandle plate modelsFor plate models, we want to integrate the behaviour at NG = nG x mG Gauss points in total where nG is the number of Gauss points on the plate 2D mesh and mG the number of Gauss points across the thickness.
We need a mechanism to handle the case of non-matching values between NG (used to load the behaviour) and nG the number of Gauss points for the 2D mesh. In addition to just reshaping the appropriate arrays, we can have different expressions for the same gradient depending on the z-coordinate, the integration weights in the form may also be different from one z-Gauss point to another.
Possible syntax:
```python
problem.register_gradient("Strain", [sym(grad(u-zi*theta)) for zi in z_Gauss], weights=w_Gauss)
```For plate models, we want to integrate the behaviour at NG = nG x mG Gauss points in total where nG is the number of Gauss points on the plate 2D mesh and mG the number of Gauss points across the thickness.
We need a mechanism to handle the case of non-matching values between NG (used to load the behaviour) and nG the number of Gauss points for the 2D mesh. In addition to just reshaping the appropriate arrays, we can have different expressions for the same gradient depending on the z-coordinate, the integration weights in the form may also be different from one z-Gauss point to another.
Possible syntax:
```python
problem.register_gradient("Strain", [sym(grad(u-zi*theta)) for zi in z_Gauss], weights=w_Gauss)
```https://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues/8Proper field reinitialization when reloading material2020-03-09T22:24:18ZJeremy BLEYERProper field reinitialization when reloading materialWe want a seamless recomputation when changing material propertiesWe want a seamless recomputation when changing material propertieshttps://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues/6Parallel support2020-03-24T21:48:38ZJeremy BLEYERParallel supporthttps://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues/5Return stress measures2020-02-22T16:17:01ZJeremy BLEYERReturn stress measuresImplement a `get_stress(measure)` method with different stress measures in finite strain:
* measure = Piola-Krichhoff-1 (default)
* measure = Piola-Kirchhoff-2
* measure = CauchyImplement a `get_stress(measure)` method with different stress measures in finite strain:
* measure = Piola-Krichhoff-1 (default)
* measure = Piola-Kirchhoff-2
* measure = Cauchyhttps://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues/4Examples2020-04-17T08:21:38ZJeremy BLEYERExamples* [x] **Stationary non-linear heat transfer**
general presentation of interface, single 2D non-linear computation, problem with one gradient but two jacobian blocks
* [x] **Stationary non-linear heat transfer (advanced)**:
more complex example with heat source and performance comparison with pure FEniCS implementation. Comparison with pseudo-Newton when neglecting the `dj_ddT` jacobian block
* [x] **Small strain elastoplasticity**
2D plane strain and axisymmetric computation, incremental load process with multiple computations,we show how to pass material properties from FEniCS and how to get state variables for post-processing or visualization, automatic registration of "Strain" in plane strain and axisym conditions
* [x] **Large strain 3D elastoplasticity**
3D computation with logarithmic deformation setting, we show how to set up the nonlinear solver parameters and show parallel compuations
* [x] **Elastic multiphase model**
2D or 3D compuations with a non-standard model using two displacement fields and three generalized gradients, we mention the current limitation on tensor/vector derivatives, e show how to register these non-standard gradients, we highlight the big advantage of the MFront formulation using linear algebra on 4-rank tensors and unicode support
* [x] **Phase-field**
coupling between two MFront computations (although the damage problem is linear), we show how to setup the state variables for each problem from the solution of the other
* [ ] **Advanced phase-field models**
use cohesive-type model and varitional inequality approach for treating irreversibility, also show how to pass spatially varying material properties (inclusions ?)
* [ ] **Crystal plasticity**
in large strain or with strain gradient model
* [ ] **Transient heat equation**
show how to write explicitly the variational formulation
* [ ] **Monolithic thermoelasticity**
* [ ] **Monolithic phase-field**
* [ ] **Porous visco-plasticity**
application case of the `StandardElastoViscoPlasticity` brick extension to porous materials
* [x] **Stationary non-linear heat transfer**
general presentation of interface, single 2D non-linear computation, problem with one gradient but two jacobian blocks
* [x] **Stationary non-linear heat transfer (advanced)**:
more complex example with heat source and performance comparison with pure FEniCS implementation. Comparison with pseudo-Newton when neglecting the `dj_ddT` jacobian block
* [x] **Small strain elastoplasticity**
2D plane strain and axisymmetric computation, incremental load process with multiple computations,we show how to pass material properties from FEniCS and how to get state variables for post-processing or visualization, automatic registration of "Strain" in plane strain and axisym conditions
* [x] **Large strain 3D elastoplasticity**
3D computation with logarithmic deformation setting, we show how to set up the nonlinear solver parameters and show parallel compuations
* [x] **Elastic multiphase model**
2D or 3D compuations with a non-standard model using two displacement fields and three generalized gradients, we mention the current limitation on tensor/vector derivatives, e show how to register these non-standard gradients, we highlight the big advantage of the MFront formulation using linear algebra on 4-rank tensors and unicode support
* [x] **Phase-field**
coupling between two MFront computations (although the damage problem is linear), we show how to setup the state variables for each problem from the solution of the other
* [ ] **Advanced phase-field models**
use cohesive-type model and varitional inequality approach for treating irreversibility, also show how to pass spatially varying material properties (inclusions ?)
* [ ] **Crystal plasticity**
in large strain or with strain gradient model
* [ ] **Transient heat equation**
show how to write explicitly the variational formulation
* [ ] **Monolithic thermoelasticity**
* [ ] **Monolithic phase-field**
* [ ] **Porous visco-plasticity**
application case of the `StandardElastoViscoPlasticity` brick extension to porous materials
Jeremy BLEYERJeremy BLEYERhttps://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues/3Add support for generalized plane strain2020-02-21T16:11:33ZJeremy BLEYERAdd support for generalized plane strainhttps://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues/1Multimaterials2020-04-17T08:20:01ZJeremy BLEYERMultimaterialsHandle multiple materialsHandle multiple materials