MAST
Multidisciplinary-design Adaptation and Sensitivity Toolkit (MAST)
MAST::ElementBase Class Reference

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.

#include <elem_base.h>

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

Public Member Functions

 ElementBase (MAST::SystemInitialization &sys, const MAST::GeomElem &elem)
 The default constructor. More...
 
virtual ~ElementBase ()
 Default virtual destructor. 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...
 
const MAST::GeomElemelem () const
 
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_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_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...
 
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_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_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_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...
 
const RealVectorXsol (bool if_sens=false) const
 
MAST::NonlinearSystemsystem ()
 
MAST::SystemInitializationsystem_initialization ()
 

Protected Attributes

RealVectorX _accel
 local acceleration More...
 
RealVectorX _accel_sens
 local acceleration More...
 
MAST::FunctionBase_active_sol_function
 pointer to the active solution mesh field function. 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_accel
 local acceleration More...
 
RealVectorX _delta_accel_sens
 local acceleration More...
 
RealVectorX _delta_sol
 local solution used for linearized analysis More...
 
RealVectorX _delta_sol_sens
 local solution used for linearized analysis More...
 
RealVectorX _delta_vel
 local velocity More...
 
RealVectorX _delta_vel_sens
 local velocity More...
 
const MAST::GeomElem_elem
 geometric element for which the computations are performed More...
 
RealVectorX _sol
 local solution More...
 
RealVectorX _sol_sens
 local solution sensitivity More...
 
MAST::SystemInitialization_system
 SystemInitialization object associated with this element. More...
 
const Real_time
 time for which system is being assembled More...
 
RealVectorX _vel
 local velocity More...
 
RealVectorX _vel_sens
 local velocity More...
 

Constructor & Destructor Documentation

◆ ElementBase()

MAST::ElementBase::ElementBase ( MAST::SystemInitialization sys,
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.

◆ ~ElementBase()

MAST::ElementBase::~ElementBase ( )
virtual

Default virtual destructor.

Definition at line 37 of file elem_base.cpp.

Member Function Documentation

◆ attach_active_solution_function()

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

Attaches the function that represents the system solution.

Definition at line 146 of file elem_base.cpp.

◆ detach_active_solution_function()

void MAST::ElementBase::detach_active_solution_function ( )

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

Definition at line 156 of file elem_base.cpp.

◆ elem()

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

Definition at line 109 of file elem_base.h.

◆ set_acceleration()

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 122 of file elem_base.cpp.

◆ set_complex_solution()

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 84 of file elem_base.cpp.

◆ set_perturbed_acceleration()

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 134 of file elem_base.cpp.

◆ set_perturbed_solution()

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 72 of file elem_base.cpp.

◆ set_perturbed_velocity()

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 110 of file elem_base.cpp.

◆ set_solution()

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 60 of file elem_base.cpp.

◆ set_velocity()

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 98 of file elem_base.cpp.

◆ sol()

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 51 of file elem_base.cpp.

◆ system()

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

Definition at line 43 of file elem_base.cpp.

◆ system_initialization()

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

Definition at line 95 of file elem_base.h.

Member Data Documentation

◆ _accel

RealVectorX MAST::ElementBase::_accel
protected

local acceleration

Definition at line 284 of file elem_base.h.

◆ _accel_sens

RealVectorX MAST::ElementBase::_accel_sens
protected

local acceleration

Definition at line 290 of file elem_base.h.

◆ _active_sol_function

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 213 of file elem_base.h.

◆ _complex_sol

ComplexVectorX MAST::ElementBase::_complex_sol
protected

local solution used for frequency domain analysis

Definition at line 237 of file elem_base.h.

◆ _complex_sol_sens

ComplexVectorX MAST::ElementBase::_complex_sol_sens
protected

local solution used for frequency domain analysis

Definition at line 243 of file elem_base.h.

◆ _delta_accel

RealVectorX MAST::ElementBase::_delta_accel
protected

local acceleration

Definition at line 296 of file elem_base.h.

◆ _delta_accel_sens

RealVectorX MAST::ElementBase::_delta_accel_sens
protected

local acceleration

Definition at line 302 of file elem_base.h.

◆ _delta_sol

RealVectorX MAST::ElementBase::_delta_sol
protected

local solution used for linearized analysis

Definition at line 249 of file elem_base.h.

◆ _delta_sol_sens

RealVectorX MAST::ElementBase::_delta_sol_sens
protected

local solution used for linearized analysis

Definition at line 255 of file elem_base.h.

◆ _delta_vel

RealVectorX MAST::ElementBase::_delta_vel
protected

local velocity

Definition at line 272 of file elem_base.h.

◆ _delta_vel_sens

RealVectorX MAST::ElementBase::_delta_vel_sens
protected

local velocity

Definition at line 278 of file elem_base.h.

◆ _elem

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

geometric element for which the computations are performed

Definition at line 205 of file elem_base.h.

◆ _sol

RealVectorX MAST::ElementBase::_sol
protected

local solution

Definition at line 225 of file elem_base.h.

◆ _sol_sens

RealVectorX MAST::ElementBase::_sol_sens
protected

local solution sensitivity

Definition at line 231 of file elem_base.h.

◆ _system

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

SystemInitialization object associated with this element.

Definition at line 200 of file elem_base.h.

◆ _time

const Real& MAST::ElementBase::_time
protected

time for which system is being assembled

Definition at line 219 of file elem_base.h.

◆ _vel

RealVectorX MAST::ElementBase::_vel
protected

local velocity

Definition at line 260 of file elem_base.h.

◆ _vel_sens

RealVectorX MAST::ElementBase::_vel_sens
protected

local velocity

Definition at line 266 of file elem_base.h.


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