Flow123d  JS_before_hm-1013-g06f2edc
Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Attributes | List of all members
Elasticity Class Reference

#include <elasticity.hh>

Inheritance diagram for Elasticity:
Inheritance graph
[legend]
Collaboration diagram for Elasticity:
Collaboration graph
[legend]

Classes

class  EqData
 

Public Types

typedef Elasticity FactoryBaseType
 

Public Member Functions

 Elasticity (Mesh &init_mesh, const Input::Record in_rec, TimeGovernor *tm=nullptr)
 Constructor. More...
 
void zero_time_step () override
 Initialize solution in the zero time. More...
 
bool evaluate_time_constraint (double &)
 
void update_solution () override
 Computes the solution in one time instant. More...
 
void next_time ()
 Pass to next time and update equation data. More...
 
void solve_linear_system ()
 Solve without updating time step and without output. More...
 
void output_data ()
 Postprocesses the solution and writes to output file. More...
 
 ~Elasticity ()
 Destructor. More...
 
void initialize () override
 
void update_output_fields ()
 
void set_potential_load (const Field< 3, FieldValue< 3 >::Scalar > &potential)
 
void calculate_cumulative_balance ()
 
const Vec & get_solution ()
 
EqDatadata ()
 
- Public Member Functions inherited from EquationBase
 EquationBase ()
 
 EquationBase (Mesh &mesh, const Input::Record in_rec)
 
virtual ~EquationBase ()
 
virtual void choose_next_time ()
 
virtual void set_time_upper_constraint (double dt, std::string message)
 
virtual void set_time_lower_constraint (double dt, std::string message)
 
TimeGovernortime ()
 
virtual void set_time_governor (TimeGovernor &time)
 
double planned_time ()
 
double solved_time ()
 
Meshmesh ()
 
std::shared_ptr< Balancebalance () const
 
TimeMark::Type mark_type ()
 
FieldSetdata ()
 

Static Public Member Functions

static const Input::Type::Recordget_input_type ()
 Declare input record type for the equation TransportDG. More...
 
- Static Public Member Functions inherited from EquationBase
static Input::Type::Recordrecord_template ()
 Template Record with common keys for derived equations. More...
 

Private Member Functions

template<unsigned int dim>
void compute_output_fields ()
 
void preallocate ()
 
void assemble_stiffness_matrix ()
 Assembles the stiffness matrix. More...
 
template<unsigned int dim>
void assemble_volume_integrals ()
 Assembles the volume integrals into the stiffness matrix. More...
 
void assemble_rhs ()
 Assembles the right hand side (forces, boundary conditions, tractions). More...
 
template<unsigned int dim>
void assemble_sources ()
 Assembles the right hand side vector due to volume sources. More...
 
template<unsigned int dim>
void assemble_fluxes_boundary ()
 Assembles the fluxes on the boundary. More...
 
template<unsigned int dim>
void assemble_matrix_element_side ()
 Assembles the fluxes between elements of different dimensions depending on displacement. More...
 
template<unsigned int dim>
void assemble_rhs_element_side ()
 Assemble fluxes between different dimensions that are independent of displacement. More...
 
template<unsigned int dim>
void assemble_boundary_conditions ()
 Assembles the r.h.s. components corresponding to the Dirichlet boundary conditions for a given space dimension. More...
 
double dirichlet_penalty (SideIter side)
 Penalty to enforce boundary value in weak sense. More...
 

Private Attributes

Physical parameters
EqData data_
 Field data for model parameters. More...
 
Parameters of the numerical method
Mechanics::FEObjectsfeo
 Finite element objects. More...
 
Solution of algebraic system
Vec rhs
 Vector of right hand side. More...
 
Mat stiffness_matrix
 The stiffness matrix. More...
 
LinSysls
 Linear algebra system for the transport equation. More...
 
Output to file
std::shared_ptr< OutputTimeoutput_stream_
 
Input::Record input_rec
 Record with input specification. More...
 
Other
bool allocation_done
 Indicates whether matrices have been preallocated. More...
 

Static Private Attributes

static const int registrar
 Registrar of class to factory. More...
 

Additional Inherited Members

- Protected Attributes inherited from EquationBase
bool equation_empty_
 flag is true if only default constructor was called More...
 
Meshmesh_
 
TimeGovernortime_
 
Input::Record input_record_
 
FieldSeteq_data_
 
std::shared_ptr< Balancebalance_
 object for calculation and writing the mass balance to file. More...
 

Detailed Description

Definition at line 87 of file elasticity.hh.

Member Typedef Documentation

Definition at line 203 of file elasticity.hh.

Constructor & Destructor Documentation

Elasticity::Elasticity ( Mesh init_mesh,
const Input::Record  in_rec,
TimeGovernor tm = nullptr 
)

Constructor.

Parameters
init_meshcomputational mesh
in_recinput record
tmtime governor (if nullptr then it is created from input record)

Definition at line 272 of file elasticity.cc.

Elasticity::~Elasticity ( )

Destructor.

Definition at line 366 of file elasticity.cc.

Member Function Documentation

template<unsigned int dim>
void Elasticity::assemble_boundary_conditions ( )
private

Assembles the r.h.s. components corresponding to the Dirichlet boundary conditions for a given space dimension.

Definition at line 1069 of file elasticity.cc.

template<unsigned int dim>
void Elasticity::assemble_fluxes_boundary ( )
private

Assembles the fluxes on the boundary.

Definition at line 823 of file elasticity.cc.

template<unsigned int dim>
void Elasticity::assemble_matrix_element_side ( )
private

Assembles the fluxes between elements of different dimensions depending on displacement.

Definition at line 882 of file elasticity.cc.

void Elasticity::assemble_rhs ( )
private

Assembles the right hand side (forces, boundary conditions, tractions).

Definition at line 737 of file elasticity.cc.

Here is the caller graph for this function:

template<unsigned int dim>
void Elasticity::assemble_rhs_element_side ( )
private

Assemble fluxes between different dimensions that are independent of displacement.

Definition at line 989 of file elasticity.cc.

template<unsigned int dim>
void Elasticity::assemble_sources ( )
private

Assembles the right hand side vector due to volume sources.

Definition at line 758 of file elasticity.cc.

void Elasticity::assemble_stiffness_matrix ( )
private

Assembles the stiffness matrix.

This routine just calls assemble_volume_integrals(), assemble_fluxes_boundary(), assemble_fluxes_element_element() and assemble_fluxes_element_side() for each space dimension.

Definition at line 663 of file elasticity.cc.

Here is the caller graph for this function:

template<unsigned int dim>
void Elasticity::assemble_volume_integrals ( )
private

Assembles the volume integrals into the stiffness matrix.

Definition at line 689 of file elasticity.cc.

void Elasticity::calculate_cumulative_balance ( )

Definition at line 648 of file elasticity.cc.

Here is the caller graph for this function:

template<unsigned int dim>
void Elasticity::compute_output_fields ( )
private

Definition at line 551 of file elasticity.cc.

EqData& Elasticity::data ( )
inline

Definition at line 200 of file elasticity.hh.

double Elasticity::dirichlet_penalty ( SideIter  side)
private

Penalty to enforce boundary value in weak sense.

Definition at line 813 of file elasticity.cc.

Here is the caller graph for this function:

bool Elasticity::evaluate_time_constraint ( double &  )
inline

Definition at line 163 of file elasticity.hh.

const Record & Elasticity::get_input_type ( )
static

Declare input record type for the equation TransportDG.

Definition at line 43 of file elasticity.cc.

Here is the caller graph for this function:

const Vec& Elasticity::get_solution ( )
inline

Definition at line 197 of file elasticity.hh.

void Elasticity::initialize ( )
overridevirtual

This method should initialize fields of the equation. All members (e.g. number of components) that are necessary for the field initialization must be set between construction and call of initialize. After this method the upper level coupling may set sharing of some fields between equations.

Reimplemented from EquationBase.

Definition at line 308 of file elasticity.cc.

void Elasticity::next_time ( )

Pass to next time and update equation data.

Definition at line 473 of file elasticity.cc.

Here is the caller graph for this function:

void Elasticity::output_data ( void  )
virtual

Postprocesses the solution and writes to output file.

Reimplemented from EquationBase.

Definition at line 530 of file elasticity.cc.

Here is the caller graph for this function:

void Elasticity::preallocate ( )
private

Definition at line 443 of file elasticity.cc.

Here is the caller graph for this function:

void Elasticity::set_potential_load ( const Field< 3, FieldValue< 3 >::Scalar > &  potential)
inline

Definition at line 192 of file elasticity.hh.

void Elasticity::solve_linear_system ( )

Solve without updating time step and without output.

Definition at line 482 of file elasticity.cc.

Here is the caller graph for this function:

void Elasticity::update_output_fields ( )

Definition at line 379 of file elasticity.cc.

Here is the caller graph for this function:

void Elasticity::update_solution ( void  )
overridevirtual

Computes the solution in one time instant.

Reimplemented from EquationBase.

Definition at line 459 of file elasticity.cc.

void Elasticity::zero_time_step ( )
overridevirtual

Initialize solution in the zero time.

Reimplemented from EquationBase.

Definition at line 407 of file elasticity.cc.

Member Data Documentation

bool Elasticity::allocation_done
private

Indicates whether matrices have been preallocated.

Definition at line 325 of file elasticity.hh.

EqData Elasticity::data_
private

Field data for model parameters.

Definition at line 277 of file elasticity.hh.

Mechanics::FEObjects* Elasticity::feo
private

Finite element objects.

Definition at line 286 of file elasticity.hh.

Input::Record Elasticity::input_rec
private

Record with input specification.

Definition at line 313 of file elasticity.hh.

LinSys* Elasticity::ls
private

Linear algebra system for the transport equation.

Definition at line 302 of file elasticity.hh.

std::shared_ptr<OutputTime> Elasticity::output_stream_
private

Definition at line 310 of file elasticity.hh.

const int Elasticity::registrar
staticprivate
Initial value:
=
Input::register_class< Elasticity, Mesh &, const Input::Record>(std::string(Elasticity::EqData::name()) + "_FE") +

Registrar of class to factory.

Definition at line 210 of file elasticity.hh.

Vec Elasticity::rhs
private

Vector of right hand side.

Definition at line 296 of file elasticity.hh.

Mat Elasticity::stiffness_matrix
private

The stiffness matrix.

Definition at line 299 of file elasticity.hh.


The documentation for this class was generated from the following files: