-
Notifications
You must be signed in to change notification settings - Fork 46
Description
Aim
Add the ability for users to define spatially distributed material parameters. They are typically defined on every mesh point and interpolated to the Gauss points using the shape functions.
Scope
This is required for all growth and remodeling (G&R) material models (#2, #33, #49).
Previous implementation
@schwarz-e implemented this feature for svFSI (grep my fork for varWall) and opened an issue and pull request that we never merged. In this implementation, we defined an n-dimensional (input parameter Number of variable wall properties) vector (point array name varWallProps) that's read from a .vtu file (input parameter Variable wall properties file path). We query this n-dimensional array within the material model to extract the material parameters we need.
Suggested improvements
@vvedula22 suggested two improvements to this code:
- Individually name point arrays in the
.vtufile according to their material parameter (e.g.Elasticity_modulus,Poisson_ratio) instead of retrieving them from ann-dimensional array as this can easily lead to confusion. - Define distributed parameters only on a particular mesh (e.g. solid only in FSI) instead of all nodes.
Related implementation
We already have spatially distributed parameters for fiber directions and CMM variable wall properties. However, those are currently handled as special cases.
- Fibers:
Fiber directions may be loaded for some material models. Fiber
direction must be stored at the element level using the data
array name, "FIB_DIR", in the vtu format.
Fiber direction file path: ./mesh/fibers_longitudinal.vtu
Fiber direction file path: ./mesh/fibers_sheet.vtu
- CMM:
CMM variable wall properties:
svFSI allows setting variable wall properties for the CMM
equation which sets elasticity modulus and thickness as varying
spatially and node-dependent. A vtp file containing the data
arrays "Thickness" and "Elasticity_modulus" should be provided
as input. An example is provided below:
Add equation: CMM {
Variable wall properties: wall {
Wall properties file path: cmm_wall_props.vtp}}
New implementation
We should use the current code (handling file IO, parallelization, interpolation) and build a unified framework to read spatially distributed material parameters. We can also use this framework for fibers and CMM properties since they fall into the same category. My suggestion:
- Define node arrays for each material parameter in the main
.vtumesh file that's read viaMesh file path. - Define any material parameter in the input file either as a numeric value or the corresponding node array name.
- Supply either the constant numeric value or the interpolated distributed value at the Gauss point to the material model.
I think this way should be robust and easy to use in the input file. Furthermore, the material evaluation would be independent of how parameters are defined. This makes it easy to define new material models which get spatially distributed parameters "for free." @ktbolt, please let me know if you think this is feasible!