MAST
MAST::ElementBase Class Reference

This is the base class for elements that implement calculation of finite element quantities over the domain and sides of a geometric element. More...

#include <elem_base.h>

Inheritance diagram for MAST::ElementBase:
Collaboration diagram for MAST::ElementBase:

Public Member Functions

 ElementBase (MAST::SystemInitialization &sys, MAST::AssemblyBase &assembly, const MAST::GeomElem &elem)
 The default constructor. More...
 
virtual ~ElementBase ()
 Default virtual destructor. More...
 
MAST::SystemInitializationsystem_initialization ()
 
MAST::AssemblyBaseassembly ()
 
MAST::NonlinearSystemsystem ()
 
const MAST::GeomElemelem () const
 
const RealVectorXsol (bool if_sens=false) const
 
virtual void set_solution (const RealVectorX &vec, bool if_sens=false)
 stores vec as solution for element level calculations, or its sensitivity if if_sens is true. More...
 
virtual void set_perturbed_solution (const RealVectorX &vec, bool if_sens=false)
 This provides the perturbed solution (or its sensitivity if if_sens is true.) for linearized analysis. More...
 
virtual void set_complex_solution (const ComplexVectorX &vec, bool if_sens=false)
 This provides the complex solution (or its sensitivity if if_sens is true.) for frequecy-domain analysis. More...
 
virtual void set_velocity (const RealVectorX &vec, bool if_sens=false)
 stores vec as velocity for element level calculations, or its sensitivity if if_sens is true. More...
 
virtual void set_perturbed_velocity (const RealVectorX &vec, bool if_sens=false)
 stores vec as perturbed velocity for element level calculations, or its sensitivity if if_sens is true. More...
 
virtual void set_acceleration (const RealVectorX &vec, bool if_sens=false)
 stores vec as acceleration for element level calculations, or its sensitivity if if_sens is true. More...
 
virtual void set_perturbed_acceleration (const RealVectorX &vec, bool if_sens=false)
 stores vec as perturbed acceleration for element level calculations, or its sensitivity if if_sens is true. More...
 
void attach_active_solution_function (MAST::FunctionBase &f)
 Attaches the function that represents the system solution. More...
 
void detach_active_solution_function ()
 Detaches the function object that may have been attached to the element. More...
 

Protected Attributes

MAST::SystemInitialization_system
 SystemInitialization object associated with this element. More...
 
MAST::AssemblyBase_assembly
 Assembly object. More...
 
const MAST::GeomElem_elem
 geometric element for which the computations are performed More...
 
MAST::FunctionBase_active_sol_function
 pointer to the active solution mesh field function. More...
 
const Real_time
 time for which system is being assembled More...
 
RealVectorX _sol
 local solution More...
 
RealVectorX _sol_sens
 local solution sensitivity More...
 
ComplexVectorX _complex_sol
 local solution used for frequency domain analysis More...
 
ComplexVectorX _complex_sol_sens
 local solution used for frequency domain analysis More...
 
RealVectorX _delta_sol
 local solution used for linearized analysis More...
 
RealVectorX _delta_sol_sens
 local solution used for linearized analysis More...
 
RealVectorX _vel
 local velocity More...
 
RealVectorX _vel_sens
 local velocity More...
 
RealVectorX _delta_vel
 local velocity More...
 
RealVectorX _delta_vel_sens
 local velocity More...
 
RealVectorX _accel
 local acceleration More...
 
RealVectorX _accel_sens
 local acceleration More...
 
RealVectorX _delta_accel
 local acceleration More...
 
RealVectorX _delta_accel_sens
 local acceleration More...
 

Detailed Description

This is the base class for elements that implement calculation of finite element quantities over the domain and sides of a geometric element.

The primary functions required of the elements depend on the nature of analysis:

  • Nonlinear Analysis

    \[ r(X,p) = 0 \]

    A nonliner analysis requires element residuals and Jacobians. Sensitivity analysis of the nonlinear problem requires the sensitivity of the residual vector with respect to the concerned parameter.
  • Eigenvalue Analysis

    \[ A(X,p) = \lambda B(X,p) \]

    An eigenvalue analysis requires the coefficent matrices $A(X,p)$ and $B(X,p)$. For cases where the eigenvalue problem is defined using small disturbances about a steady-state solution, the base solution (and its sensitivity for sensitivity problems) needs to be provided to the element.
  • Transient Analysis for first order systems

    \[ f_m(\dot{X}, X, p) + f(X,p) = 0 \]

Definition at line 72 of file elem_base.h.

Constructor & Destructor Documentation

MAST::ElementBase::ElementBase ( MAST::SystemInitialization sys,
MAST::AssemblyBase assembly,
const MAST::GeomElem elem 
)

The default constructor.

Parameters
sysSystemInitialization object which provides the system for which this element will perorm the calculations.
elemlibMesh::Elem object on which calculations will be performed.

Definition at line 27 of file elem_base.cpp.

MAST::ElementBase::~ElementBase ( )
virtual

Default virtual destructor.

Definition at line 39 of file elem_base.cpp.

Member Function Documentation

MAST::AssemblyBase& MAST::ElementBase::assembly ( )
inline
Returns
a reference to the libMesh::System object

Definition at line 103 of file elem_base.h.

Here is the call graph for this function:

void MAST::ElementBase::attach_active_solution_function ( MAST::FunctionBase f)

Attaches the function that represents the system solution.

Definition at line 148 of file elem_base.cpp.

Here is the caller graph for this function:

void MAST::ElementBase::detach_active_solution_function ( )

Detaches the function object that may have been attached to the element.

Definition at line 158 of file elem_base.cpp.

Here is the caller graph for this function:

const MAST::GeomElem& MAST::ElementBase::elem ( ) const
inline
Returns
a constant reference to the element

Definition at line 117 of file elem_base.h.

Here is the call graph for this function:

Here is the caller graph for this function:

void MAST::ElementBase::set_acceleration ( const RealVectorX vec,
bool  if_sens = false 
)
virtual

stores vec as acceleration for element level calculations, or its sensitivity if if_sens is true.

Reimplemented in MAST::StructuralElementBase.

Definition at line 124 of file elem_base.cpp.

Here is the caller graph for this function:

void MAST::ElementBase::set_complex_solution ( const ComplexVectorX vec,
bool  if_sens = false 
)
virtual

This provides the complex solution (or its sensitivity if if_sens is true.) for frequecy-domain analysis.

stores vec as solution for element level calculations.

Definition at line 86 of file elem_base.cpp.

Here is the caller graph for this function:

void MAST::ElementBase::set_perturbed_acceleration ( const RealVectorX vec,
bool  if_sens = false 
)
virtual

stores vec as perturbed acceleration for element level calculations, or its sensitivity if if_sens is true.

Reimplemented in MAST::StructuralElementBase.

Definition at line 136 of file elem_base.cpp.

Here is the caller graph for this function:

void MAST::ElementBase::set_perturbed_solution ( const RealVectorX vec,
bool  if_sens = false 
)
virtual

This provides the perturbed solution (or its sensitivity if if_sens is true.) for linearized analysis.

stores vec as solution for element level calculations.

Reimplemented in MAST::StructuralElementBase.

Definition at line 74 of file elem_base.cpp.

Here is the caller graph for this function:

void MAST::ElementBase::set_perturbed_velocity ( const RealVectorX vec,
bool  if_sens = false 
)
virtual

stores vec as perturbed velocity for element level calculations, or its sensitivity if if_sens is true.

Reimplemented in MAST::StructuralElementBase.

Definition at line 112 of file elem_base.cpp.

Here is the caller graph for this function:

void MAST::ElementBase::set_solution ( const RealVectorX vec,
bool  if_sens = false 
)
virtual

stores vec as solution for element level calculations, or its sensitivity if if_sens is true.

Reimplemented in MAST::StructuralElementBase.

Definition at line 62 of file elem_base.cpp.

Here is the caller graph for this function:

void MAST::ElementBase::set_velocity ( const RealVectorX vec,
bool  if_sens = false 
)
virtual

stores vec as velocity for element level calculations, or its sensitivity if if_sens is true.

Reimplemented in MAST::StructuralElementBase.

Definition at line 100 of file elem_base.cpp.

Here is the caller graph for this function:

const RealVectorX & MAST::ElementBase::sol ( bool  if_sens = false) const
Returns
a const reference to the solution vector, or its sensitivity if if_sens is true.

Definition at line 53 of file elem_base.cpp.

Here is the caller graph for this function:

MAST::NonlinearSystem & MAST::ElementBase::system ( )
Returns
a reference to the libMesh::System object

Definition at line 45 of file elem_base.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

MAST::SystemInitialization& MAST::ElementBase::system_initialization ( )
inline
Returns
a reference to the libMesh::System object

Definition at line 96 of file elem_base.h.

Member Data Documentation

RealVectorX MAST::ElementBase::_accel
protected

local acceleration

Definition at line 297 of file elem_base.h.

RealVectorX MAST::ElementBase::_accel_sens
protected

local acceleration

Definition at line 303 of file elem_base.h.

MAST::FunctionBase* MAST::ElementBase::_active_sol_function
protected

pointer to the active solution mesh field function.

If this has been set, then some of the element properties are dependent on the element solution, and the element should perform the necessary operations in calculation of the Jacobian

Definition at line 226 of file elem_base.h.

MAST::AssemblyBase& MAST::ElementBase::_assembly
protected

Assembly object.

Definition at line 213 of file elem_base.h.

ComplexVectorX MAST::ElementBase::_complex_sol
protected

local solution used for frequency domain analysis

Definition at line 250 of file elem_base.h.

ComplexVectorX MAST::ElementBase::_complex_sol_sens
protected

local solution used for frequency domain analysis

Definition at line 256 of file elem_base.h.

RealVectorX MAST::ElementBase::_delta_accel
protected

local acceleration

Definition at line 309 of file elem_base.h.

RealVectorX MAST::ElementBase::_delta_accel_sens
protected

local acceleration

Definition at line 315 of file elem_base.h.

RealVectorX MAST::ElementBase::_delta_sol
protected

local solution used for linearized analysis

Definition at line 262 of file elem_base.h.

RealVectorX MAST::ElementBase::_delta_sol_sens
protected

local solution used for linearized analysis

Definition at line 268 of file elem_base.h.

RealVectorX MAST::ElementBase::_delta_vel
protected

local velocity

Definition at line 285 of file elem_base.h.

RealVectorX MAST::ElementBase::_delta_vel_sens
protected

local velocity

Definition at line 291 of file elem_base.h.

const MAST::GeomElem& MAST::ElementBase::_elem
protected

geometric element for which the computations are performed

Definition at line 218 of file elem_base.h.

RealVectorX MAST::ElementBase::_sol
protected

local solution

Definition at line 238 of file elem_base.h.

RealVectorX MAST::ElementBase::_sol_sens
protected

local solution sensitivity

Definition at line 244 of file elem_base.h.

MAST::SystemInitialization& MAST::ElementBase::_system
protected

SystemInitialization object associated with this element.

Definition at line 208 of file elem_base.h.

const Real& MAST::ElementBase::_time
protected

time for which system is being assembled

Definition at line 232 of file elem_base.h.

RealVectorX MAST::ElementBase::_vel
protected

local velocity

Definition at line 273 of file elem_base.h.

RealVectorX MAST::ElementBase::_vel_sens
protected

local velocity

Definition at line 279 of file elem_base.h.


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