[Dune] Handling several materials

Christian Engwer christian.engwer at uni-muenster.de
Mon Apr 6 16:12:22 CEST 2020


Hi Thomas,

> I have a naïve question about how I could hande several materials in solid mechanics (with different state variables on each materials).
> It looks like the dune-subgrid module and dune-multidomaingrid provide appropriate functionalities.
> Would someone confirm that those modules are the way to go ?

These modules are a bit overkill for what you want to do. They are
intended for handling different PDEs in different arts of the domain
and in particular different unknowns. If you only want to use
different material properteis, you can simly do this inside your
parameter class.

If you look for example at the linear-elasticity operator in
dune-pdelab, you parametrize the operator with an object that fulfills
the LinearElasticityParameterInterface model. In this class you have
two methods `lambda` and `mu` to specify the Lame parameters. Both
methods take an element and a local coordinate, i.e. they model
spatially varying parameters. If your function is analytic, you can
simply evaluate functions at the given global position (transforming
from local to global coordinates). I assume you are using something
more complicated...

The usual way people do this, is as follows: Assume you you are using
gmsh to generate your mesh. In the gmsh file you can define different
physical entities, i.e. subdomains. In the mesh file, these subdomain
indices are present as integer values attached to each cell. The
Dune::GmshReader allow to pass in a std::vector, which will be filled
by the indices for each cell. You can then use these indices to map to
a particular parameter set. There are some technicalities, as the mesh
can be modified after initialization and the cell numbering does not
have to match that in the gmsh file, but the general approach is
this...

Best
Christian






More information about the Dune mailing list