ALE.h

Note

The documentation on this page was automatically extracted from the DOLFIN C++ code and may need to be edited or expanded.

class ALE

This class provides functionality useful for implementation of ALE (Arbitrary Lagrangian-Eulerian) methods, in particular moving the boundary vertices of a mesh and then interpolating the new coordinates for the interior vertices accordingly.

static std::shared_ptr<MeshDisplacement> move(std::shared_ptr<Mesh> mesh, const BoundaryMesh &new_boundary)

Move coordinates of mesh according to new boundary coordinates. Works only for affine meshes.

@param mesh (Mesh)
The affine mesh to move.
@param new_boundary (BoundaryMesh)
An affine mesh containing just the boundary cells.
@return MeshDisplacement
Displacement encapsulated in Expression subclass MeshDisplacement.
static std::shared_ptr<MeshDisplacement> move(std::shared_ptr<Mesh> mesh0, const Mesh &mesh1)
@param mesh0 (Mesh)
The affine mesh to move.
@param mesh1 (Mesh)
The affine mesh to be fit.
@return MeshDisplacement
Displacement encapsulated in Expression subclass
static void move(Mesh &mesh, const GenericFunction &displacement)

Move coordinates of mesh according to displacement function. This works only for affine meshes.

NOTE: This cannot be implemented for higher-order geometries
as there is no way of constructing function space for position unless supplied as an argument.
@param mesh (Mesh)
The affine mesh to move.
@param displacement (GenericFunction)
A vectorial generic function.
static void move(Mesh &mesh, const Function &displacement)

Move coordinates of mesh according to displacement function.

@param mesh (Mesh)
The mesh to move.
@param displacement (Function)
A vectorial Lagrange function of matching degree.