Template Class ElasticityProblemParameters

Inheritance Relationships

Base Type

  • public ParameterAcceptor

Class Documentation

template<int dim, int spacedim = dim>
class ElasticityProblemParameters : public ParameterAcceptor

Parameter set driving mesh generation, constitutive model, and solvers.

Unnamed Group

std::string output_directory = "."

Output, mesh, and finite-element setup parameters.

Output folder.

std::string output_name = "solution"

Output stem.

unsigned int output_every_n_steps = 100

Transient output period.

unsigned int fe_degree = 1

FE degree.

unsigned int initial_refinement = 5

Global refinements.

std::set<types::boundary_id> dirichlet_ids = {0}

Strong Dirichlet ids.

std::set<types::boundary_id> weak_dirichlet_ids = {}

Weak Dirichlet ids.

std::set<types::boundary_id> neumann_ids = {}

Neumann ids.

std::set<types::boundary_id> normal_flux_ids = {}

Flux-constraint ids.

std::set<types::boundary_id> robin_ids = {}

Full-vector Robin faces.

MaterialProperties default_material_properties{"default"}

Fallback material.

std::map<types::material_id, std::string> material_tags_by_material_id

Id->tag map.

std::map<types::material_id, std::unique_ptr<MaterialProperties>> material_properties_by_id

Runtime material table.

std::set<types::material_id> rhs_material_ids = {}

Material-specific rhs.

std::string domain_type = "generate"

Grid source mode.

std::string triangulation_type = "distributed"

Parallel tria backend.

std::string name_of_grid = "hyper_cube"

Grid generator/input name.

std::string arguments_for_grid = "-1: 1: false"

Grid generator arguments.

double grid_scale = 1.0

Uniform scaling applied after grid input.

std::string refinement_strategy = "fixed_fraction"

Adaptivity strategy.

double coarsening_fraction = 0.0

Coarsening fraction.

double refinement_fraction = 0.3

Refinement fraction.

unsigned int n_refinement_cycles = 1

Number of adapt cycles.

unsigned int max_cells = 20000

Global cell cap.

bool output_pressure = false

Enable pressure output.

double penalty_term = 1.0e4

Weak-Dirichlet penalty.

Unnamed Group

mutable ModulatedParsedFunction<spacedim> rhs

Volumetric forcing and forcing modulation.

std::map<types::material_id, std::shared_ptr<ModulatedParsedFunction<spacedim>>> rhs_by_material_id

Unnamed Group

mutable ModulatedParsedFunction<spacedim> bc

Dirichlet and Neumann boundary data with modulation factors.

std::map<types::boundary_id, std::shared_ptr<ModulatedParsedFunction<spacedim>>> dirichlet_bc_by_id
mutable ModulatedParsedFunction<spacedim> Neumann_bc

Neumann boundary data function.

std::map<types::boundary_id, std::shared_ptr<ModulatedParsedFunction<spacedim>>> neumann_bc_by_id
mutable ParameterAcceptorProxy<Functions::ParsedFunction<spacedim>> robin_coefficient
std::map<types::boundary_id, std::shared_ptr<ParameterAcceptorProxy<Functions::ParsedFunction<spacedim>>>> robin_coefficient_by_id
mutable ModulatedParsedFunction<spacedim> robin_bc
std::map<types::boundary_id, std::shared_ptr<ModulatedParsedFunction<spacedim>>> robin_bc_by_id

Unnamed Group

mutable ParameterAcceptorProxy<ReductionControl> displacement_solver_control

Solver controls for different linear blocks.

mutable ParameterAcceptorProxy<ReductionControl> reduced_mass_solver_control

Mass solve control.

mutable ParameterAcceptorProxy<ReductionControl> augmented_lagrange_solver_control

Augmented-Lagrangian solve control.

mutable ParameterAcceptorProxy<ReductionControl> schur_complement_solver_control

Schur-complement solve control.

Public Functions

ElasticityProblemParameters()

Build and register all parameter subsections used by the elasticity model.

const MaterialProperties &get_material_properties(const types::material_id material_id) const

Return material parameters associated with a material id.

const ModulatedParsedFunction<spacedim> &get_dirichlet_bc(const types::boundary_id boundary_id) const
const ModulatedParsedFunction<spacedim> &get_neumann_bc(const types::boundary_id boundary_id) const
const Functions::ParsedFunction<spacedim> &get_robin_coefficient(const types::boundary_id boundary_id) const
const ModulatedParsedFunction<spacedim> &get_robin_bc(const types::boundary_id boundary_id) const
const ModulatedParsedFunction<spacedim> &get_rhs(const types::material_id material_id) const
void set_rhs_times(const double time) const
void set_boundary_condition_times(const double time) const
void check_model_consistency()

Check model consistency and infer derived modes after parameter parsing.

This performs the requested consistency checks and sets:

  • time_mode based on {initial_time, final_time} and rho across all materials;

  • elasticity_model based on neta across all materials;

This is called automatically from the parse callback once all material subsections have been parsed (i.e., in the second pass when material tags are used).

inline bool uses_prescribed_vessel_pressure() const

Select prescribed vessel pressure instead of a displacement constraint.

This does not enable or disable exchange with an external solver.

inline void set_prescribed_vessel_pressure(const bool prescribed)

Public Members

TimeMode time_mode = TimeMode::Static

Inferred time mode (set during parameter parsing).

Note

Parameters are parsed using a two-pass strategy (see initialize_parameters() in include/immersx/io/utils.h). We infer modes only after pass >= 2 so that dynamically-created MaterialProperties acceptors have been parsed.

ElasticityModel elasticity_model = ElasticityModel::LinearElasticity

Inferred bulk constitutive model (set during parameter parsing).

bool pressure_coupling = false

Toggle load transfer through inclusion pressure projection.

Compatibility storage; use the accessors below.

bool remove_interior_stress_from_pressure = true

The elastic material also fills the vessels, so the multiplier is the jump between the normal stress of the tissue and that of the material inside the vessel.

If this is true, the pressure computed by VesselElasticityProblem::compute_pressure_at_immersed_surface() adds back the analytic normal stress of the interior material, so that it is the normal stress of the tissue alone. See doc/reference/coupling-names.md.

mutable ParameterAcceptorProxy<Functions::ParsedFunction<spacedim>> exact_solution

Exact solution used for error postprocessing.

mutable ParameterAcceptorProxy<Functions::ParsedFunction<spacedim>> initial_displacement

Initial displacement for time-dependent runs.

mutable ParameterAcceptorProxy<Functions::ParsedFunction<spacedim>> initial_velocity

Initial velocity for time-dependent runs.

std::string weight_expression = "1."

Expression used to define quadrature weights on inclusions.

CouplingType coupling_type = CouplingType::Point

Backend used for the immersed coupling.

Point uses discrete inclusion centers with finite radii; TensorProduct uses a VTK reduced mesh and a reference cross section.

bool estimate_condition_number = false

Run the optional coupling condition-number diagnostic.

bool output_results_before_solving = false

Emit output before each solve step.

mutable ParsedConvergenceTable convergence_table

Convergence table used for run summaries.

TimeParameters time_parameters

Canonical time-integration parameters for this Problem.