Template Class ElasticStaticProblem¶
Defined in File elastic_static.h
Class Documentation¶
-
template<int dim, int spacedim = dim>
class ElasticStaticProblem¶ Parameter-driven assembled linear elasticity Problem for a static solve.
The Problem owns the mesh, displacement DoFs, constraints, stiffness matrix, forcing, accepted solution, and native linear solver control. It does not own any coupling state.
Public Types
-
using VectorType = ImmersXLA::MPI::Vector¶
-
using MatrixType = ImmersXLA::MPI::SparseMatrix¶
-
using TriangulationVariant = std::variant<DistributedTriangulation, FullyDistributedTriangulation>¶
Public Functions
-
inline explicit ElasticStaticProblem(const ElasticStaticParameters<dim, spacedim> ¶meters, const MPI_Comm communicator = MPI_COMM_WORLD)¶
-
inline void setup()¶
Create the mesh, DoFs, constraints, stiffness matrix, and vectors.
-
inline void refine_global()¶
Globally refine a distributed mesh and rebuild the static system.
The candidate solution is reset because each static refinement cycle solves the refined problem anew.
-
inline const dealii::IndexSet &locally_owned_dofs() const¶
-
inline const dealii::IndexSet &locally_relevant_dofs() const¶
-
inline const dealii::AffineConstraints<double> &constraints() const¶
-
inline const MatrixType &stiffness_operator() const¶
-
inline const VectorType &forcing() const¶
-
inline const VectorType &solution() const¶
-
inline void set_forcing(const dealii::Function<spacedim> &function)¶
Reassemble the body force from a programmatic Function.
Parameter-driven applications should configure the parsed rhs instead. This convenience is useful for focused tests and callers that already own a deal.II Function.
-
inline void solve()¶
Solve the assembled static elasticity system natively.
-
inline void run()¶
Run the ordinary standalone static elasticity lifecycle.
-
inline void set_solution(const VectorType &new_solution)¶
-
inline void compute_error(dealii::ParsedConvergenceTable &table) const¶
-
inline void output_results(const unsigned int cycle) const¶
Write the accepted displacement and subdomain id for one observation cycle to configured output.
-
using VectorType = ImmersXLA::MPI::Vector¶