Template Class FiberReinforcedElastodynamics

Class Documentation

template<int dim>
class FiberReinforcedElastodynamics

Standalone coupled driver for a matrix and an embedded excess fiber.

The matrix is an ElastodynamicsSolver<dim, dim> and the fiber is an independently meshed ElastodynamicsSolver<1, dim>. The driver owns the coupled time loop. With SUNDIALS enabled, it uses the public IDA execution adapter; without SUNDIALS, it uses the explicit Schur-complement backward-Euler path.

Public Types

using Parameters = FiberReinforcedElastodynamicsParameters<dim>
using MatrixProblem = ElastodynamicsSolver<dim, dim>
using FiberProblem = ElastodynamicsSolver<1, dim>
using Problem = MatrixProblem
using VectorType = typename MatrixProblem::VectorType
using MatrixType = typename MatrixProblem::MatrixType

Public Functions

explicit FiberReinforcedElastodynamics(const Parameters &parameters)
void setup()

Create both meshes and assemble both Problems.

The coupling is prepared by initialization or by the execution adapter.

void set_initial_conditions()

Set both configured initial states and check displacement compatibility.

void advance_one_timestep()

Advance one coupled backward-Euler step.

void run()

Run setup, initialization, output, and the coupled time loop.

inline const MatrixProblem &matrix_problem() const
inline const FiberProblem &fiber_problem() const
const VectorType &multiplier() const
inline const FiberReinforcedElastodynamicsResiduals &residuals() const
inline double current_time() const

Current coupled time and accepted-step number.

inline unsigned int time_step_number() const
double fiber_excess_elastic_energy() const

Elastic energy carried by the additive/excess fiber Problem.

double matrix_only_displacement_difference() const

Difference from a matrix-only backward-Euler reference response.