Flow123d  JS_before_hm-62-ge56f9d5
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 output_vector_gather ()
 
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 ()
 
TimeMark::Type mark_type ()
 
FieldSetdata ()
 
virtual void get_solution_vector (FMT_UNUSED double *&vector, FMT_UNUSED unsigned int &size)
 
virtual void get_parallel_solution_vector (FMT_UNUSED Vec &vector)
 

Static Public Member Functions

static const Input::Type::Recordget_input_type ()
 Declare input record type for the equation TransportDG. More...
 

Private Member Functions

void update_output_fields ()
 
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 103 of file elasticity.hh.

Member Typedef Documentation

Definition at line 216 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 287 of file elasticity.cc.

Elasticity::~Elasticity ( )

Destructor.

Definition at line 389 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 1084 of file elasticity.cc.

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

Assembles the fluxes on the boundary.

Definition at line 844 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 901 of file elasticity.cc.

void Elasticity::assemble_rhs ( )
private

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

Definition at line 758 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 1005 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 779 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 684 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 710 of file elasticity.cc.

void Elasticity::calculate_cumulative_balance ( )

Definition at line 669 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 571 of file elasticity.cc.

EqData& Elasticity::data ( )
inline

Definition at line 213 of file elasticity.hh.

double Elasticity::dirichlet_penalty ( SideIter  side)
private

Penalty to enforce boundary value in weak sense.

Definition at line 834 of file elasticity.cc.

Here is the caller graph for this function:

bool Elasticity::evaluate_time_constraint ( double &  )
inline

Definition at line 177 of file elasticity.hh.

const Record & Elasticity::get_input_type ( )
static

Declare input record type for the equation TransportDG.

Definition at line 44 of file elasticity.cc.

Here is the caller graph for this function:

const Vec& Elasticity::get_solution ( )
inline

Definition at line 210 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 326 of file elasticity.cc.

void Elasticity::next_time ( )

Pass to next time and update equation data.

Definition at line 494 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 549 of file elasticity.cc.

Here is the caller graph for this function:

void Elasticity::output_vector_gather ( )

Definition at line 402 of file elasticity.cc.

Here is the caller graph for this function:

void Elasticity::preallocate ( )
private

Definition at line 464 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 205 of file elasticity.hh.

void Elasticity::solve_linear_system ( )

Solve without updating time step and without output.

Definition at line 503 of file elasticity.cc.

Here is the caller graph for this function:

void Elasticity::update_output_fields ( )
private

Definition at line 409 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 480 of file elasticity.cc.

void Elasticity::zero_time_step ( )
overridevirtual

Initialize solution in the zero time.

Reimplemented from EquationBase.

Definition at line 430 of file elasticity.cc.

Member Data Documentation

bool Elasticity::allocation_done
private

Indicates whether matrices have been preallocated.

Definition at line 340 of file elasticity.hh.

EqData Elasticity::data_
private

Field data for model parameters.

Definition at line 292 of file elasticity.hh.

Mechanics::FEObjects* Elasticity::feo
private

Finite element objects.

Definition at line 301 of file elasticity.hh.

Input::Record Elasticity::input_rec
private

Record with input specification.

Definition at line 328 of file elasticity.hh.

LinSys* Elasticity::ls
private

Linear algebra system for the transport equation.

Definition at line 317 of file elasticity.hh.

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

Definition at line 325 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 223 of file elasticity.hh.

Vec Elasticity::rhs
private

Vector of right hand side.

Definition at line 311 of file elasticity.hh.

Mat Elasticity::stiffness_matrix
private

The stiffness matrix.

Definition at line 314 of file elasticity.hh.


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