Go to the documentation of this file.
19 #ifndef ELASTICITY_HH_
20 #define ELASTICITY_HH_
118 if (
ls!=
nullptr)
delete ls;
127 std::shared_ptr<DOFHandlerMultiDim>
dh_;
199 eq_fields_->ref_potential_load = ref_potential;
205 {
return eq_data_->ls->get_solution(); }
257 static constexpr
const char *
name_ =
"Mechanics_LinearElasticity";
272 double lame_mu(
double young,
double poisson);
Input::Record input_rec
Record with input specification.
Field< 3, FieldValue< 3 >::Scalar > poisson_ratio
Field< 3, FieldValue< 3 >::Scalar > cross_section_min
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::TensorFixed > > output_stress_ptr
GenericAssembly< ConstraintAssemblyElasticity > * constraint_assembly_
EquationOutput output_fields
BCField< 3, FieldValue< 3 >::TensorFixed > bc_stress
void update_output_fields()
Field< 3, FieldValue< 3 >::TensorFixed > initial_stress
double lame_lambda(double young, double poisson)
void next_time()
Pass to next time and update equation data.
void solve_linear_system()
Solve without updating time step and without output.
double lame_mu(double young, double poisson)
Field< 3, FieldValue< 3 >::Scalar > output_divergence
LinSys * ls
Linear algebraic system.
BCField< 3, FieldValue< 3 >::Enum > bc_type
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > output_mean_stress_ptr
Field< 3, FieldValue< 3 >::Scalar > subdomain
Wrappers for linear systems based on MPIAIJ and MATIS format.
Field< 3, FieldValue< 3 >::Scalar > output_cross_section
void set_potential_load(const Field< 3, FieldValue< 3 >::Scalar > &potential, const Field< 3, FieldValue< 3 >::Scalar > &ref_potential)
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > output_div_ptr
static constexpr const char * name_
Elasticity FactoryBaseType
Field< 3, FieldValue< 3 >::TensorFixed > output_stress
std::shared_ptr< DOFHandlerMultiDim > dh_
Objects for distribution of dofs.
void calculate_cumulative_balance()
static const int registrar
Registrar of class to factory.
Field< 3, FieldValue< 3 >::Scalar > fracture_sigma
Transition parameter for diffusive transfer on fractures.
void initialize() override
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > output_von_mises_stress_ptr
BCField< 3, FieldValue< 3 >::VectorFixed > bc_displacement
Field< 3, FieldValue< 3 >::Scalar > output_von_mises_stress
Definitions of particular quadrature rules on simplices.
Provides the numbering of the finite element degrees of freedom on the computational mesh.
Basic time management functionality for unsteady (and steady) solvers (class Equation).
const Vec & get_solution()
Field< 3, FieldValue< 3 >::Scalar > lame_mu
The class for outputting data during time.
Elasticity(Mesh &init_mesh, const Input::Record in_rec, TimeGovernor *tm=nullptr)
Constructor.
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::VectorFixed > > output_field_ptr
Field< 3, FieldValue< 3 >::Scalar > cross_section
Pointer to DarcyFlow field cross_section.
Container for various descendants of FieldCommonBase.
Abstract base class for equation clasess.
Field< 3, FieldValue< 3 >::Scalar > young_modulus
std::shared_ptr< OutputTime > output_stream_
Abstract class for the description of a general finite element on a reference simplex in dim dimensio...
std::shared_ptr< Balance > balance_
Shared Balance object.
Field< 3, FieldValue< 3 >::Scalar > output_mean_stress
Field< 3, FieldValue< 3 >::Scalar > ref_potential_load
Potential of reference external load on boundary. TODO: Switch to BCField when possible.
std::shared_ptr< DOFHandlerMultiDim > dh_tensor_
BCField< 3, FieldValue< 3 >::VectorFixed > bc_traction
Field< 3, FieldValue< 3 >::Scalar > dirichlet_penalty
void assemble_constraint_matrix()
Field< 3, FieldValue< 3 >::Scalar > lame_lambda
Field< 3, FieldValue< 3 >::VectorFixed > load
std::shared_ptr< EqFields > eq_fields_
Fields for model parameters.
Field< 3, FieldValue< 3 >::Scalar > region_id
GenericAssembly< OutpuFieldsAssemblyElasticity > * output_fields_assembly_
static const Input::Type::Record & get_input_type()
Declare input record type for the equation TransportDG.
Field< 3, FieldValue< 3 >::VectorFixed > output_field
GenericAssembly< RhsAssemblyElasticity > * rhs_assembly_
void update_solution() override
Computes the solution in one time instant.
Class template representing a field with values dependent on: point, element, and region.
GenericAssembly< StiffnessAssemblyElasticity > * stiffness_assembly_
general assembly objects, hold assembly objects of appropriate dimension
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > output_cross_section_ptr
std::shared_ptr< DOFHandlerMultiDim > dh_scalar_
std::shared_ptr< EqData > eq_data_
Data for model parameters.
void create_dh(Mesh *mesh, unsigned int fe_order)
Create DOF handler objects.
std::map< LongIdx, LongIdx > constraint_idx
bool has_contact_
Indicator of contact conditions on fractures.
Generic class of assemblation.
void zero_time_step() override
Initialize solution in the zero time.
void output_data()
Postprocesses the solution and writes to output file.
static const Input::Type::Selection & get_bc_type_selection()
Field< 3, FieldValue< 3 >::Scalar > potential_load
Potential of an additional (external) load.
@ bc_type_displacement_normal
unsigned int IntDim
A dimension index type.