mfront-wrapper issues https://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues 2020-04-15T15:01:46Z https://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues/13 Energy in OptimisationProblem 2020-04-15T15:01:46Z Jeremy BLEYER Energy in OptimisationProblem 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)  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/10 Refactor code 2020-03-16T09:26:47Z Jeremy BLEYER Refactor code Refactoring small code duplicates involving internal/external state variables names and sizes Refactoring small code duplicates involving internal/external state variables names and sizes https://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues/9 Handle plate models 2020-03-09T22:43:49Z Jeremy BLEYER Handle plate models 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)  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/8 Proper field reinitialization when reloading material 2020-03-09T22:24:18Z Jeremy BLEYER Proper field reinitialization when reloading material We want a seamless recomputation when changing material properties We want a seamless recomputation when changing material properties https://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues/6 Parallel support 2020-03-24T21:48:38Z Jeremy BLEYER Parallel support https://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues/5 Return stress measures 2020-02-22T16:17:01Z Jeremy BLEYER Return stress measures Implement a get_stress(measure) method with different stress measures in finite strain: * measure = Piola-Krichhoff-1 (default) * measure = Piola-Kirchhoff-2 * measure = Cauchy Implement a get_stress(measure) method with different stress measures in finite strain: * measure = Piola-Krichhoff-1 (default) * measure = Piola-Kirchhoff-2 * measure = Cauchy https://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues/4 Examples 2020-04-17T08:21:38Z Jeremy BLEYER Examples * [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 BLEYER Jeremy BLEYER https://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues/3 Add support for generalized plane strain 2020-02-21T16:11:33Z Jeremy BLEYER Add support for generalized plane strain https://gitlab.enpc.fr/navier-fenics/mfront-wrapper/-/issues/1 Multimaterials 2020-04-17T08:20:01Z Jeremy BLEYER Multimaterials Handle multiple materials Handle multiple materials