Add linear elastic solver
This MR adds a solver for the linear elasticity equations and the library and pre/post-processing infrastructure that is needed to support it. In particular, the primary application for the solver within Nektar++ is for mesh generation purposes, whereby the mesh is treated as a solid body and deformed at the boundary to align the curvilinear elements with a given surface.
To do this robustly, as the linear elastic equations are only valid for small deformations, the implementation presented here adopts a multi-step approach, solving the equations after each step. As such, routines are needed in
SpatialDomains to reset the geometry information and rebuild the matrix system at each step.
The following changes have been made to accommodate this:
Geometryobjects now have a
Resetmethod, which clears the geometry coefficients of itself and any derived edges/faces, rebuilding this from the vertex and curvature information. To facilitate this, most elements now have a
SetUpXmaproutine which regenerates the
m_xmapobject as curvature may have been added to the element.
ExpListalso has a
Resetmethod which clears the matrix managers and causes matrices to be rebuild on the next call to
- Added support for 1D curved segments in 2D space to
FieldConverthas three new modules:
- a displacement processing module which calculates the displacement between an XML manifold and a 2D/3D domain's boundary region and outputs a file suitable for a boundary condition in the elasticity solver;
- a deformation processing module which takes the displacement field generated by the elasticity solver and applies it to the mesh;
- and an XML output module which can be used in conjunction with the previous module. Since this is likely to be useful elsewhere, most of the code for this has been added as a
XmlToVtkhas a new command line argument to output the distribution of scaled Jacobians of a given mesh for quality assessment purposes.
- The elasticity code itself which includes the thermal terms discussed in publications.
- Documentation for all of the above.