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