This PR allows the use of defining material rotation from the FEniCS side.
MFront behaviours are expressed in the local material frame
FEniCS fields (gradients, fluxes, etc...) are expressed in the global reference frame
a material rotation matrix is passed upon instantiating the material (it can either be a constant matrix e.g. a numpy array or a FEniCS object e.g. a Tensor Function or a UFL object of matrix type, expressed using variable angles for instance)
gradients are rotated from the reference to the material frame before calling the behaviour integration
fluxes and tangent operator blocks are rotated back from the material to the reference frame after the integration
A demo illustrating such features will follow in a separate PR.
This PR also includes some improvements on the definition of spatially variable material properties which can now be any FEniCS object which can be interpolated or projected onto a Quadrature function space e.g. Constants, Expressions or functions defined on another function space...
This PR allows the use of defining material rotation from the
FEniCS
side.MFront
behaviours are expressed in the local material frameFEniCS
fields (gradients, fluxes, etc...) are expressed in the global reference framenumpy
array or aFEniCS
object e.g. a Tensor Function or a UFL object of matrix type, expressed using variable angles for instance)A demo illustrating such features will follow in a separate PR.
This PR also includes some improvements on the definition of spatially variable material properties which can now be any
FEniCS
object which can be interpolated or projected onto aQuadrature
function space e.g. Constants, Expressions or functions defined on another function space...