MAST
Multidisciplinary-design Adaptation and Sensitivity Toolkit (MAST)
MAST::StructuralElementBase Class Referenceabstract

Detailed Description

Definition at line 42 of file structural_element_base.h.

#include <structural_element_base.h>

Inheritance diagram for MAST::StructuralElementBase:
Collaboration diagram for MAST::StructuralElementBase:

Public Member Functions

 StructuralElementBase (MAST::SystemInitialization &sys, const MAST::GeomElem &elem, const MAST::ElementPropertyCardBase &p)
 Constructor. More...
 
virtual ~StructuralElementBase ()
 
virtual bool calculate_stress (bool request_derivative, const MAST::FunctionBase *f, MAST::StressStrainOutputBase &output)=0
 Calculates the stress tensor. More...
 
virtual void calculate_stress_boundary_velocity (const MAST::FunctionBase &p, MAST::StressStrainOutputBase &output, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f)=0
 Calculates the boundary velocity term contributions to the sensitivity of stress at the specified boundary of this element. More...
 
virtual void calculate_stress_temperature_derivative (MAST::FEBase &fe_thermal, MAST::StressStrainOutputBase &output)=0
 
virtual bool damping_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac)
 damping force contribution to system residual More...
 
virtual bool damping_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac)
 sensitivity of the damping force contribution to system residual More...
 
const MAST::ElementPropertyCardBaseelem_property ()
 returns a constant reference to the finite element object More...
 
virtual bool if_incompatible_modes () const =0
 
virtual unsigned int incompatible_mode_size () const
 
virtual bool inertial_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xddot, RealMatrixX &jac_xdot, RealMatrixX &jac)
 inertial force contribution to system residual More...
 
virtual void inertial_residual_boundary_velocity (const MAST::FunctionBase &p, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f, bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xddot, RealMatrixX &jac_xdot, RealMatrixX &jac)
 sensitivity of the inertial force contribution to system residual More...
 
virtual bool inertial_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xddot, RealMatrixX &jac_xdot, RealMatrixX &jac)
 sensitivity of the inertial force contribution to system residual More...
 
virtual bool internal_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac)=0
 internal force contribution to system residual More...
 
virtual void internal_residual_boundary_velocity (const MAST::FunctionBase &p, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f, bool request_jacobian, RealVectorX &f, RealMatrixX &jac)=0
 calculates the term on side s: $ \int_\Gamma a(\delta u, u) v_n ~d\Gamma $. More...
 
virtual bool internal_residual_jac_dot_state_sensitivity (RealMatrixX &jac)=0
 calculates d[J]/d{x} . More...
 
virtual bool internal_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac)=0
 sensitivity of the internal force contribution to system residual More...
 
bool linearized_frequency_domain_side_external_residual (bool request_jacobian, ComplexVectorX &f, ComplexMatrixX &jac, std::multimap< libMesh::boundary_id_type, MAST::BoundaryConditionBase *> &bc)
 Calculates the external force due to frequency domain side external force contribution to system residual. More...
 
bool linearized_frequency_domain_volume_external_residual (bool request_jacobian, ComplexVectorX &f, ComplexMatrixX &jac, std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase *> &bc)
 Calculates the frequency domain volume external force contribution to system residual. More...
 
virtual bool linearized_inertial_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xddot, RealMatrixX &jac_xdot, RealMatrixX &jac)
 inertial force contribution to system residual of linerized problem More...
 
virtual bool linearized_internal_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac)
 internal force contribution to system residual of the linearized problem More...
 
bool linearized_side_external_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac, std::multimap< libMesh::boundary_id_type, MAST::BoundaryConditionBase *> &bc)
 side external force contribution to system residual. More...
 
bool linearized_volume_external_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac, std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase *> &bc)
 volume external force contribution to system residual. More...
 
const RealVectorXlocal_solution (bool if_sens=false) const
 
virtual bool prestress_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac)=0
 prestress force contribution to system residual More...
 
virtual bool prestress_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac)=0
 sensitivity of the prestress force contribution to system residual 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...
 
void set_incompatible_mode_solution (RealVectorX &vec)
 sets the pointer to the incompatible mode solution vector. 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)
 stores vec as perturbed solution 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_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...
 
bool side_external_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac, std::multimap< libMesh::boundary_id_type, MAST::BoundaryConditionBase *> &bc)
 side external force contribution to system residual. More...
 
bool side_external_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac, std::multimap< libMesh::boundary_id_type, MAST::BoundaryConditionBase *> &bc)
 sensitivity of the side external force contribution to system residual More...
 
virtual void thermal_residual_temperature_derivative (const MAST::FEBase &fe_thermal, RealMatrixX &m)=0
 
template<typename ValType >
void transform_matrix_to_global_system (const ValType &local_mat, ValType &global_mat) const
 
template<typename ValType >
void transform_vector_to_global_system (const ValType &local_vec, ValType &global_vec) const
 
template<typename ValType >
void transform_vector_to_local_system (const ValType &global_vec, ValType &local_vec) const
 
virtual void update_incompatible_mode_solution (const RealVectorX &dsol)
 updates the incompatible solution for this element. More...
 
bool volume_external_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac, std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase *> &bc)
 volume external force contribution to system residual. More...
 
void volume_external_residual_boundary_velocity (const MAST::FunctionBase &p, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f, std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase *> &bc, bool request_jacobian, RealVectorX &f, RealMatrixX &jac)
 boundary velocity contribution of volume external force. More...
 
bool volume_external_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac, std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase *> &bc)
 sensitivity of the volume external force contribution to system residual More...
 
- Public Member Functions inherited from MAST::ElementBase
 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_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...
 
const RealVectorXsol (bool if_sens=false) const
 
MAST::NonlinearSystemsystem ()
 
MAST::SystemInitializationsystem_initialization ()
 

Public Attributes

bool follower_forces
 flag for follower forces More...
 

Protected Member Functions

virtual bool linearized_frequency_domain_surface_pressure_residual (bool request_jacobian, ComplexVectorX &f, ComplexMatrixX &jac, const unsigned int side, MAST::BoundaryConditionBase &bc)=0
 Calculates the force vector and Jacobian due to small perturbation surface pressure. More...
 
virtual bool linearized_frequency_domain_surface_pressure_residual (bool request_jacobian, ComplexVectorX &f, ComplexMatrixX &jac, MAST::BoundaryConditionBase &bc)
 Calculates the force vector and Jacobian due to surface pressure applied on the entire element domain. More...
 
virtual bool linearized_frequency_domain_surface_pressure_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, ComplexVectorX &f, ComplexMatrixX &jac, const unsigned int side, MAST::BoundaryConditionBase &bc)=0
 Calculates the sensitivity of force vector and Jacobian due to small is applicable for perturbation surface pressure. More...
 
virtual bool linearized_frequency_domain_surface_pressure_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, ComplexVectorX &f, ComplexMatrixX &jac, MAST::BoundaryConditionBase &bc)
 Calculates the sensitivity of force vector and Jacobian due to surface pressure applied on the entire element domain. More...
 
virtual bool linearized_surface_pressure_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac, MAST::BoundaryConditionBase &bc)
 Calculates the force vector and Jacobian due to surface pressure applied on the entire element domain. More...
 
Real piston_theory_cp (const unsigned int order, const Real vel_U, const Real gamma, const Real mach)
 
Real piston_theory_dcp_dv (const unsigned int order, const Real vel_U, const Real gamma, const Real mach)
 
virtual bool piston_theory_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac, MAST::BoundaryConditionBase &bc)=0
 Calculates the force vector and Jacobian due to piston-theory based surface pressure on the entire element domain. More...
 
virtual bool piston_theory_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac, const unsigned int side, MAST::BoundaryConditionBase &bc)=0
 Calculates the force vector and Jacobian due to piston-theory based surface pressure on the side identified by side. More...
 
virtual bool piston_theory_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac, MAST::BoundaryConditionBase &bc)=0
 Calculates the force vector and Jacobian due to piston-theory based surface pressure on the entire element domain. More...
 
virtual bool piston_theory_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac, const unsigned int side, MAST::BoundaryConditionBase &bc)=0
 Calculates the force vector and Jacobian due to piston-theory based surface pressure on the side identified by side. More...
 
virtual void surface_pressure_boundary_velocity (const MAST::FunctionBase &p, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f, MAST::BoundaryConditionBase &bc, bool request_jacobian, RealVectorX &f, RealMatrixX &jac)
 Calculates the force vector and Jacobian due to surface pressure applied on the entire element domain. More...
 
virtual bool surface_pressure_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac, const unsigned int side, MAST::BoundaryConditionBase &bc)=0
 Calculates the force vector and Jacobian due to surface pressure. More...
 
virtual bool surface_pressure_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac, MAST::BoundaryConditionBase &bc)
 Calculates the force vector and Jacobian due to surface pressure applied on the entire element domain. More...
 
virtual bool surface_pressure_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac, const unsigned int side, MAST::BoundaryConditionBase &bc)=0
 Calculates the force vector and Jacobian due to surface pressure. More...
 
virtual bool surface_pressure_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac, MAST::BoundaryConditionBase &bc)
 Calculates the force vector and Jacobian due to surface pressure. More...
 
virtual bool surface_traction_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac, const unsigned int side, MAST::BoundaryConditionBase &bc)=0
 Calculates the force vector and Jacobian due to surface traction. More...
 
virtual bool surface_traction_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac, const unsigned int side, MAST::BoundaryConditionBase &bc)=0
 Calculates the sensitivity of element vector and matrix quantities for surface traction boundary condition. More...
 
virtual bool surface_traction_residual_shifted_boundary (bool request_jacobian, RealVectorX &f, RealMatrixX &jac, const unsigned int side, MAST::BoundaryConditionBase &bc)=0
 Calculates the sensitivity of force vector and Jacobian due to surface traction and sensitiity due to boundary movement. More...
 
virtual bool surface_traction_residual_shifted_boundary_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac, const unsigned int side, MAST::BoundaryConditionBase &bc)=0
 Calculates the sensitivity of force vector and Jacobian due to surface traction and sensitiity due to boundary movement. More...
 
virtual bool thermal_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac, MAST::BoundaryConditionBase &bc)=0
 Calculates the force vector and Jacobian due to thermal stresses. More...
 
virtual void thermal_residual_boundary_velocity (const MAST::FunctionBase &p, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f, MAST::BoundaryConditionBase &bc, bool request_jacobian, RealVectorX &f, RealMatrixX &jac)=0
 Calculates the sensitivity of force vector and Jacobian due to thermal stresses. More...
 
virtual bool thermal_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac, MAST::BoundaryConditionBase &bc)=0
 Calculates the sensitivity of force vector and Jacobian due to thermal stresses. More...
 

Protected Attributes

RealVectorX_incompatible_sol
 incompatible mode solution vector More...
 
RealVectorX _local_accel
 local acceleration More...
 
RealVectorX _local_accel_sens
 local acceleration sensitivity More...
 
RealVectorX _local_delta_accel
 local perturbed acceleration More...
 
RealVectorX _local_delta_accel_sens
 local perturbed acceleration sensitivity More...
 
RealVectorX _local_delta_sol
 local perturbed solution More...
 
RealVectorX _local_delta_sol_sens
 local perturbed solution sensitivity More...
 
RealVectorX _local_delta_vel
 local perturbed velocity More...
 
RealVectorX _local_delta_vel_sens
 local perturbed velocity sensitivity More...
 
RealVectorX _local_sol
 local solution More...
 
RealVectorX _local_sol_sens
 local solution sensitivity More...
 
RealVectorX _local_vel
 local velocity More...
 
RealVectorX _local_vel_sens
 local velocity sensitivity More...
 
const MAST::ElementPropertyCardBase_property
 element property More...
 
- Protected Attributes inherited from MAST::ElementBase
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

◆ StructuralElementBase()

MAST::StructuralElementBase::StructuralElementBase ( MAST::SystemInitialization sys,
const MAST::GeomElem elem,
const MAST::ElementPropertyCardBase p 
)

Constructor.

Definition at line 38 of file structural_element_base.cpp.

◆ ~StructuralElementBase()

MAST::StructuralElementBase::~StructuralElementBase ( )
virtual

Definition at line 50 of file structural_element_base.cpp.

Member Function Documentation

◆ calculate_stress()

virtual bool MAST::StructuralElementBase::calculate_stress ( bool  request_derivative,
const MAST::FunctionBase f,
MAST::StressStrainOutputBase output 
)
pure virtual

Calculates the stress tensor.

If derivative and sensitivity with respect to the parameter sesitivity_param are calculated and provided if the respective flags are true.

Implemented in MAST::StructuralElement3D, MAST::StructuralElement1D, and MAST::StructuralElement2D.

◆ calculate_stress_boundary_velocity()

virtual void MAST::StructuralElementBase::calculate_stress_boundary_velocity ( const MAST::FunctionBase p,
MAST::StressStrainOutputBase output,
const unsigned int  s,
const MAST::FieldFunction< RealVectorX > &  vel_f 
)
pure virtual

Calculates the boundary velocity term contributions to the sensitivity of stress at the specified boundary of this element.

Implemented in MAST::StructuralElement3D, MAST::StructuralElement1D, and MAST::StructuralElement2D.

◆ calculate_stress_temperature_derivative()

virtual void MAST::StructuralElementBase::calculate_stress_temperature_derivative ( MAST::FEBase fe_thermal,
MAST::StressStrainOutputBase output 
)
pure virtual

◆ damping_residual()

virtual bool MAST::StructuralElementBase::damping_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xdot,
RealMatrixX jac 
)
inlinevirtual

damping force contribution to system residual

Definition at line 164 of file structural_element_base.h.

◆ damping_residual_sensitivity()

virtual bool MAST::StructuralElementBase::damping_residual_sensitivity ( const MAST::FunctionBase p,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xdot,
RealMatrixX jac 
)
inlinevirtual

sensitivity of the damping force contribution to system residual

Definition at line 308 of file structural_element_base.h.

◆ elem_property()

const MAST::ElementPropertyCardBase& MAST::StructuralElementBase::elem_property ( )
inline

returns a constant reference to the finite element object

Definition at line 119 of file structural_element_base.h.

◆ if_incompatible_modes()

virtual bool MAST::StructuralElementBase::if_incompatible_modes ( ) const
pure virtual
Returns
true/false based on whether or not an element uses the incompatible mode approach to enrich local strain fields

Implemented in MAST::StructuralElement1D, MAST::StructuralElement2D, and MAST::StructuralElement3D.

◆ incompatible_mode_size()

virtual unsigned int MAST::StructuralElementBase::incompatible_mode_size ( ) const
inlinevirtual
Returns
the dimension of the incompatible mode vector

Reimplemented in MAST::StructuralElement3D.

Definition at line 379 of file structural_element_base.h.

◆ inertial_residual()

bool MAST::StructuralElementBase::inertial_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xddot,
RealMatrixX jac_xdot,
RealMatrixX jac 
)
virtual

inertial force contribution to system residual

Reimplemented in MAST::StructuralElement3D.

Definition at line 257 of file structural_element_base.cpp.

◆ inertial_residual_boundary_velocity()

void MAST::StructuralElementBase::inertial_residual_boundary_velocity ( const MAST::FunctionBase p,
const unsigned int  s,
const MAST::FieldFunction< RealVectorX > &  vel_f,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xddot,
RealMatrixX jac_xdot,
RealMatrixX jac 
)
virtual

sensitivity of the inertial force contribution to system residual

Definition at line 508 of file structural_element_base.cpp.

◆ inertial_residual_sensitivity()

bool MAST::StructuralElementBase::inertial_residual_sensitivity ( const MAST::FunctionBase p,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xddot,
RealMatrixX jac_xdot,
RealMatrixX jac 
)
virtual

sensitivity of the inertial force contribution to system residual

Definition at line 403 of file structural_element_base.cpp.

◆ internal_residual()

virtual bool MAST::StructuralElementBase::internal_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac 
)
pure virtual

internal force contribution to system residual

Implemented in MAST::StructuralElement2D, MAST::StructuralElement1D, and MAST::StructuralElement3D.

◆ internal_residual_boundary_velocity()

virtual void MAST::StructuralElementBase::internal_residual_boundary_velocity ( const MAST::FunctionBase p,
const unsigned int  s,
const MAST::FieldFunction< RealVectorX > &  vel_f,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac 
)
pure virtual

calculates the term on side s: $ \int_\Gamma a(\delta u, u) v_n ~d\Gamma $.

Implemented in MAST::StructuralElement2D, MAST::StructuralElement1D, and MAST::StructuralElement3D.

◆ internal_residual_jac_dot_state_sensitivity()

virtual bool MAST::StructuralElementBase::internal_residual_jac_dot_state_sensitivity ( RealMatrixX jac)
pure virtual

calculates d[J]/d{x} .

d{x}/dp

Implemented in MAST::StructuralElement1D, MAST::StructuralElement3D, and MAST::StructuralElement2D.

◆ internal_residual_sensitivity()

virtual bool MAST::StructuralElementBase::internal_residual_sensitivity ( const MAST::FunctionBase p,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac 
)
pure virtual

sensitivity of the internal force contribution to system residual

Implemented in MAST::StructuralElement3D, MAST::StructuralElement2D, and MAST::StructuralElement1D.

◆ linearized_frequency_domain_side_external_residual()

bool MAST::StructuralElementBase::linearized_frequency_domain_side_external_residual ( bool  request_jacobian,
ComplexVectorX f,
ComplexMatrixX jac,
std::multimap< libMesh::boundary_id_type, MAST::BoundaryConditionBase *> &  bc 
)

Calculates the external force due to frequency domain side external force contribution to system residual.

This primarily handles the boundary conditions. If requested, the Jacobian due to x is returned in jac.

Definition at line 752 of file structural_element_base.cpp.

◆ linearized_frequency_domain_surface_pressure_residual() [1/2]

virtual bool MAST::StructuralElementBase::linearized_frequency_domain_surface_pressure_residual ( bool  request_jacobian,
ComplexVectorX f,
ComplexMatrixX jac,
const unsigned int  side,
MAST::BoundaryConditionBase bc 
)
protectedpure virtual

Calculates the force vector and Jacobian due to small perturbation surface pressure.

Implemented in MAST::StructuralElement1D, MAST::StructuralElement3D, and MAST::StructuralElement2D.

◆ linearized_frequency_domain_surface_pressure_residual() [2/2]

bool MAST::StructuralElementBase::linearized_frequency_domain_surface_pressure_residual ( bool  request_jacobian,
ComplexVectorX f,
ComplexMatrixX jac,
MAST::BoundaryConditionBase bc 
)
protectedvirtual

Calculates the force vector and Jacobian due to surface pressure applied on the entire element domain.

This is applicable for only 1D and 2D elements. The implementation can be used as the evaluation of $ df(x_s, x_f)/dx_f dx_f $, or the contribution of the off-diagonal Jacobian times fluid solution perturbation.

Definition at line 1489 of file structural_element_base.cpp.

◆ linearized_frequency_domain_surface_pressure_residual_sensitivity() [1/2]

virtual bool MAST::StructuralElementBase::linearized_frequency_domain_surface_pressure_residual_sensitivity ( const MAST::FunctionBase p,
bool  request_jacobian,
ComplexVectorX f,
ComplexMatrixX jac,
const unsigned int  side,
MAST::BoundaryConditionBase bc 
)
protectedpure virtual

Calculates the sensitivity of force vector and Jacobian due to small is applicable for perturbation surface pressure.

Implemented in MAST::StructuralElement1D, MAST::StructuralElement3D, and MAST::StructuralElement2D.

◆ linearized_frequency_domain_surface_pressure_residual_sensitivity() [2/2]

virtual bool MAST::StructuralElementBase::linearized_frequency_domain_surface_pressure_residual_sensitivity ( const MAST::FunctionBase p,
bool  request_jacobian,
ComplexVectorX f,
ComplexMatrixX jac,
MAST::BoundaryConditionBase bc 
)
inlineprotectedvirtual

Calculates the sensitivity of force vector and Jacobian due to surface pressure applied on the entire element domain.

This is applicable for only 1D and 2D elements.

Definition at line 678 of file structural_element_base.h.

◆ linearized_frequency_domain_volume_external_residual()

bool MAST::StructuralElementBase::linearized_frequency_domain_volume_external_residual ( bool  request_jacobian,
ComplexVectorX f,
ComplexMatrixX jac,
std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase *> &  bc 
)

Calculates the frequency domain volume external force contribution to system residual.

If requested, the Jacobian due to x is returned in jac.

Definition at line 923 of file structural_element_base.cpp.

◆ linearized_inertial_residual()

bool MAST::StructuralElementBase::linearized_inertial_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xddot,
RealMatrixX jac_xdot,
RealMatrixX jac 
)
virtual

inertial force contribution to system residual of linerized problem

Definition at line 360 of file structural_element_base.cpp.

◆ linearized_internal_residual()

bool MAST::StructuralElementBase::linearized_internal_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac 
)
virtual

internal force contribution to system residual of the linearized problem

Definition at line 224 of file structural_element_base.cpp.

◆ linearized_side_external_residual()

bool MAST::StructuralElementBase::linearized_side_external_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xdot,
RealMatrixX jac,
std::multimap< libMesh::boundary_id_type, MAST::BoundaryConditionBase *> &  bc 
)

side external force contribution to system residual.

This primarily handles the boundary conditions. If requested, the Jacobians of the residual due to xdot will be returned in jac_xdot and the Jacobian due to x is returned in jac.

Definition at line 706 of file structural_element_base.cpp.

◆ linearized_surface_pressure_residual()

bool MAST::StructuralElementBase::linearized_surface_pressure_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac,
MAST::BoundaryConditionBase bc 
)
protectedvirtual

Calculates the force vector and Jacobian due to surface pressure applied on the entire element domain.

This is applicable for only 1D and 2D elements.

Definition at line 1411 of file structural_element_base.cpp.

◆ linearized_volume_external_residual()

bool MAST::StructuralElementBase::linearized_volume_external_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xdot,
RealMatrixX jac,
std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase *> &  bc 
)

volume external force contribution to system residual.

If requested, the Jacobians of the residual due to xdot will be returned in jac_xdot and the Jacobian due to x is returned in jac.

Definition at line 862 of file structural_element_base.cpp.

◆ local_solution()

const RealVectorX& MAST::StructuralElementBase::local_solution ( bool  if_sens = false) const
inline
Returns
a constant reference to the element solution (or its derivative if if_sens is true) in the local element coordinate system

Definition at line 108 of file structural_element_base.h.

◆ piston_theory_cp()

Real MAST::StructuralElementBase::piston_theory_cp ( const unsigned int  order,
const Real  vel_U,
const Real  gamma,
const Real  mach 
)
protected
Returns
the piston theory cp value based on the specified normal velocity and the flow parameters

Definition at line 1711 of file structural_element_base.cpp.

◆ piston_theory_dcp_dv()

Real MAST::StructuralElementBase::piston_theory_dcp_dv ( const unsigned int  order,
const Real  vel_U,
const Real  gamma,
const Real  mach 
)
protected
Returns
the derivative of piston theory cp value with respect to the normal velocity.

Definition at line 1742 of file structural_element_base.cpp.

◆ piston_theory_residual() [1/2]

virtual bool MAST::StructuralElementBase::piston_theory_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xdot,
RealMatrixX jac,
MAST::BoundaryConditionBase bc 
)
protectedpure virtual

Calculates the force vector and Jacobian due to piston-theory based surface pressure on the entire element domain.

This is applicable for only 1D and 2D elements. The order of the boundary condition and direction of fluid flow are obtained from the BoundaryConditionBase object.

Implemented in MAST::StructuralElement1D, MAST::StructuralElement2D, and MAST::StructuralElement3D.

◆ piston_theory_residual() [2/2]

virtual bool MAST::StructuralElementBase::piston_theory_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xdot,
RealMatrixX jac,
const unsigned int  side,
MAST::BoundaryConditionBase bc 
)
protectedpure virtual

Calculates the force vector and Jacobian due to piston-theory based surface pressure on the side identified by side.

The order of the boundary condition and direction of fluid flow are obtained from the BoundaryConditionBase object.

Implemented in MAST::StructuralElement1D, MAST::StructuralElement3D, and MAST::StructuralElement2D.

◆ piston_theory_residual_sensitivity() [1/2]

virtual bool MAST::StructuralElementBase::piston_theory_residual_sensitivity ( const MAST::FunctionBase p,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xdot,
RealMatrixX jac,
MAST::BoundaryConditionBase bc 
)
protectedpure virtual

Calculates the force vector and Jacobian due to piston-theory based surface pressure on the entire element domain.

This is applicable for only 1D and 2D elements. The order of the boundary condition and direction of fluid flow are obtained from the BoundaryConditionBase object.

Implemented in MAST::StructuralElement1D, MAST::StructuralElement3D, and MAST::StructuralElement2D.

◆ piston_theory_residual_sensitivity() [2/2]

virtual bool MAST::StructuralElementBase::piston_theory_residual_sensitivity ( const MAST::FunctionBase p,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xdot,
RealMatrixX jac,
const unsigned int  side,
MAST::BoundaryConditionBase bc 
)
protectedpure virtual

Calculates the force vector and Jacobian due to piston-theory based surface pressure on the side identified by side.

The order of the boundary condition and direction of fluid flow are obtained from the BoundaryConditionBase object.

Implemented in MAST::StructuralElement1D, MAST::StructuralElement3D, and MAST::StructuralElement2D.

◆ prestress_residual()

virtual bool MAST::StructuralElementBase::prestress_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac 
)
pure virtual

prestress force contribution to system residual

Implemented in MAST::StructuralElement1D, MAST::StructuralElement2D, and MAST::StructuralElement3D.

◆ prestress_residual_sensitivity()

virtual bool MAST::StructuralElementBase::prestress_residual_sensitivity ( const MAST::FunctionBase p,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac 
)
pure virtual

sensitivity of the prestress force contribution to system residual

Implemented in MAST::StructuralElement1D, MAST::StructuralElement2D, and MAST::StructuralElement3D.

◆ set_acceleration()

void MAST::StructuralElementBase::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 from MAST::ElementBase.

Definition at line 170 of file structural_element_base.cpp.

◆ set_incompatible_mode_solution()

void MAST::StructuralElementBase::set_incompatible_mode_solution ( RealVectorX vec)
inline

sets the pointer to the incompatible mode solution vector.

This is stored as a pointer, and any modifications will overwrite the original vector

Definition at line 392 of file structural_element_base.h.

◆ set_perturbed_acceleration()

void MAST::StructuralElementBase::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 from MAST::ElementBase.

Definition at line 197 of file structural_element_base.cpp.

◆ set_perturbed_solution()

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

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

Reimplemented from MAST::ElementBase.

Definition at line 86 of file structural_element_base.cpp.

◆ set_perturbed_velocity()

void MAST::StructuralElementBase::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 from MAST::ElementBase.

Definition at line 143 of file structural_element_base.cpp.

◆ set_solution()

void MAST::StructuralElementBase::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 from MAST::ElementBase.

Definition at line 57 of file structural_element_base.cpp.

◆ set_velocity()

void MAST::StructuralElementBase::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 from MAST::ElementBase.

Definition at line 116 of file structural_element_base.cpp.

◆ side_external_residual()

bool MAST::StructuralElementBase::side_external_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xdot,
RealMatrixX jac,
std::multimap< libMesh::boundary_id_type, MAST::BoundaryConditionBase *> &  bc 
)

side external force contribution to system residual.

This primarily handles the boundary conditions. If requested, the Jacobians of the residual due to xdot will be returned in jac_xdot and the Jacobian due to x is returned in jac.

Definition at line 630 of file structural_element_base.cpp.

◆ side_external_residual_sensitivity()

bool MAST::StructuralElementBase::side_external_residual_sensitivity ( const MAST::FunctionBase p,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xdot,
RealMatrixX jac,
std::multimap< libMesh::boundary_id_type, MAST::BoundaryConditionBase *> &  bc 
)

sensitivity of the side external force contribution to system residual

Definition at line 972 of file structural_element_base.cpp.

◆ surface_pressure_boundary_velocity()

void MAST::StructuralElementBase::surface_pressure_boundary_velocity ( const MAST::FunctionBase p,
const unsigned int  s,
const MAST::FieldFunction< RealVectorX > &  vel_f,
MAST::BoundaryConditionBase bc,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac 
)
protectedvirtual

Calculates the force vector and Jacobian due to surface pressure applied on the entire element domain.

This is applicable for only 1D and 2D elements.

Definition at line 1318 of file structural_element_base.cpp.

◆ surface_pressure_residual() [1/2]

virtual bool MAST::StructuralElementBase::surface_pressure_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac,
const unsigned int  side,
MAST::BoundaryConditionBase bc 
)
protectedpure virtual

Calculates the force vector and Jacobian due to surface pressure.

Implemented in MAST::StructuralElement1D, MAST::StructuralElement2D, and MAST::StructuralElement3D.

◆ surface_pressure_residual() [2/2]

bool MAST::StructuralElementBase::surface_pressure_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac,
MAST::BoundaryConditionBase bc 
)
protectedvirtual

Calculates the force vector and Jacobian due to surface pressure applied on the entire element domain.

This is applicable for only 1D and 2D elements.

Definition at line 1169 of file structural_element_base.cpp.

◆ surface_pressure_residual_sensitivity() [1/2]

virtual bool MAST::StructuralElementBase::surface_pressure_residual_sensitivity ( const MAST::FunctionBase p,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac,
const unsigned int  side,
MAST::BoundaryConditionBase bc 
)
protectedpure virtual

Calculates the force vector and Jacobian due to surface pressure.

Implemented in MAST::StructuralElement1D, MAST::StructuralElement2D, and MAST::StructuralElement3D.

◆ surface_pressure_residual_sensitivity() [2/2]

bool MAST::StructuralElementBase::surface_pressure_residual_sensitivity ( const MAST::FunctionBase p,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac,
MAST::BoundaryConditionBase bc 
)
protectedvirtual

Calculates the force vector and Jacobian due to surface pressure.

this should be implemented for each element type

Definition at line 1244 of file structural_element_base.cpp.

◆ surface_traction_residual()

virtual bool MAST::StructuralElementBase::surface_traction_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac,
const unsigned int  side,
MAST::BoundaryConditionBase bc 
)
protectedpure virtual

Calculates the force vector and Jacobian due to surface traction.

Implemented in MAST::StructuralElement1D, MAST::StructuralElement2D, and MAST::StructuralElement3D.

◆ surface_traction_residual_sensitivity()

virtual bool MAST::StructuralElementBase::surface_traction_residual_sensitivity ( const MAST::FunctionBase p,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac,
const unsigned int  side,
MAST::BoundaryConditionBase bc 
)
protectedpure virtual

Calculates the sensitivity of element vector and matrix quantities for surface traction boundary condition.

Implemented in MAST::StructuralElement1D, MAST::StructuralElement2D, and MAST::StructuralElement3D.

◆ surface_traction_residual_shifted_boundary()

virtual bool MAST::StructuralElementBase::surface_traction_residual_shifted_boundary ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac,
const unsigned int  side,
MAST::BoundaryConditionBase bc 
)
protectedpure virtual

Calculates the sensitivity of force vector and Jacobian due to surface traction and sensitiity due to boundary movement.

Implemented in MAST::StructuralElement1D, MAST::StructuralElement2D, and MAST::StructuralElement3D.

◆ surface_traction_residual_shifted_boundary_sensitivity()

virtual bool MAST::StructuralElementBase::surface_traction_residual_shifted_boundary_sensitivity ( const MAST::FunctionBase p,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac,
const unsigned int  side,
MAST::BoundaryConditionBase bc 
)
protectedpure virtual

Calculates the sensitivity of force vector and Jacobian due to surface traction and sensitiity due to boundary movement.

Implemented in MAST::StructuralElement1D, MAST::StructuralElement2D, and MAST::StructuralElement3D.

◆ thermal_residual()

virtual bool MAST::StructuralElementBase::thermal_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac,
MAST::BoundaryConditionBase bc 
)
protectedpure virtual

Calculates the force vector and Jacobian due to thermal stresses.

this should be implemented for each element type

Implemented in MAST::StructuralElement1D, MAST::StructuralElement2D, and MAST::StructuralElement3D.

◆ thermal_residual_boundary_velocity()

virtual void MAST::StructuralElementBase::thermal_residual_boundary_velocity ( const MAST::FunctionBase p,
const unsigned int  s,
const MAST::FieldFunction< RealVectorX > &  vel_f,
MAST::BoundaryConditionBase bc,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac 
)
protectedpure virtual

Calculates the sensitivity of force vector and Jacobian due to thermal stresses.

this should be implemented for each element type

Implemented in MAST::StructuralElement1D, MAST::StructuralElement2D, and MAST::StructuralElement3D.

◆ thermal_residual_sensitivity()

virtual bool MAST::StructuralElementBase::thermal_residual_sensitivity ( const MAST::FunctionBase p,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac,
MAST::BoundaryConditionBase bc 
)
protectedpure virtual

Calculates the sensitivity of force vector and Jacobian due to thermal stresses.

this should be implemented for each element type

Implemented in MAST::StructuralElement1D, MAST::StructuralElement2D, and MAST::StructuralElement3D.

◆ thermal_residual_temperature_derivative()

virtual void MAST::StructuralElementBase::thermal_residual_temperature_derivative ( const MAST::FEBase fe_thermal,
RealMatrixX m 
)
pure virtual

◆ transform_matrix_to_global_system()

template<typename ValType >
template void MAST::StructuralElementBase::transform_matrix_to_global_system< ComplexMatrixX > ( const ValType &  local_mat,
ValType &  global_mat 
) const

Definition at line 1568 of file structural_element_base.cpp.

◆ transform_vector_to_global_system()

template<typename ValType >
template void MAST::StructuralElementBase::transform_vector_to_global_system< ComplexVectorX > ( const ValType &  local_vec,
ValType &  global_vec 
) const

Definition at line 1644 of file structural_element_base.cpp.

◆ transform_vector_to_local_system()

template<typename ValType >
template void MAST::StructuralElementBase::transform_vector_to_local_system< ComplexVectorX > ( const ValType &  global_vec,
ValType &  local_vec 
) const

Definition at line 1608 of file structural_element_base.cpp.

◆ update_incompatible_mode_solution()

virtual void MAST::StructuralElementBase::update_incompatible_mode_solution ( const RealVectorX dsol)
inlinevirtual

updates the incompatible solution for this element.

dsol is the update to the element solution for the current nonlinear step.

Reimplemented in MAST::StructuralElement3D.

Definition at line 402 of file structural_element_base.h.

◆ volume_external_residual()

bool MAST::StructuralElementBase::volume_external_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xdot,
RealMatrixX jac,
std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase *> &  bc 
)

volume external force contribution to system residual.

If requested, the Jacobians of the residual due to xdot will be returned in jac_xdot and the Jacobian due to x is returned in jac.

Definition at line 805 of file structural_element_base.cpp.

◆ volume_external_residual_boundary_velocity()

void MAST::StructuralElementBase::volume_external_residual_boundary_velocity ( const MAST::FunctionBase p,
const unsigned int  s,
const MAST::FieldFunction< RealVectorX > &  vel_f,
std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase *> &  bc,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac 
)

boundary velocity contribution of volume external force.

Definition at line 1113 of file structural_element_base.cpp.

◆ volume_external_residual_sensitivity()

bool MAST::StructuralElementBase::volume_external_residual_sensitivity ( const MAST::FunctionBase p,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xdot,
RealMatrixX jac,
std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase *> &  bc 
)

sensitivity of the volume external force contribution to system residual

Definition at line 1054 of file structural_element_base.cpp.

Member Data Documentation

◆ _incompatible_sol

RealVectorX* MAST::StructuralElementBase::_incompatible_sol
protected

incompatible mode solution vector

Definition at line 824 of file structural_element_base.h.

◆ _local_accel

RealVectorX MAST::StructuralElementBase::_local_accel
protected

local acceleration

Definition at line 800 of file structural_element_base.h.

◆ _local_accel_sens

RealVectorX MAST::StructuralElementBase::_local_accel_sens
protected

local acceleration sensitivity

Definition at line 812 of file structural_element_base.h.

◆ _local_delta_accel

RealVectorX MAST::StructuralElementBase::_local_delta_accel
protected

local perturbed acceleration

Definition at line 806 of file structural_element_base.h.

◆ _local_delta_accel_sens

RealVectorX MAST::StructuralElementBase::_local_delta_accel_sens
protected

local perturbed acceleration sensitivity

Definition at line 818 of file structural_element_base.h.

◆ _local_delta_sol

RealVectorX MAST::StructuralElementBase::_local_delta_sol
protected

local perturbed solution

Definition at line 758 of file structural_element_base.h.

◆ _local_delta_sol_sens

RealVectorX MAST::StructuralElementBase::_local_delta_sol_sens
protected

local perturbed solution sensitivity

Definition at line 770 of file structural_element_base.h.

◆ _local_delta_vel

RealVectorX MAST::StructuralElementBase::_local_delta_vel
protected

local perturbed velocity

Definition at line 782 of file structural_element_base.h.

◆ _local_delta_vel_sens

RealVectorX MAST::StructuralElementBase::_local_delta_vel_sens
protected

local perturbed velocity sensitivity

Definition at line 794 of file structural_element_base.h.

◆ _local_sol

RealVectorX MAST::StructuralElementBase::_local_sol
protected

local solution

Definition at line 752 of file structural_element_base.h.

◆ _local_sol_sens

RealVectorX MAST::StructuralElementBase::_local_sol_sens
protected

local solution sensitivity

Definition at line 764 of file structural_element_base.h.

◆ _local_vel

RealVectorX MAST::StructuralElementBase::_local_vel
protected

local velocity

Definition at line 776 of file structural_element_base.h.

◆ _local_vel_sens

RealVectorX MAST::StructuralElementBase::_local_vel_sens
protected

local velocity sensitivity

Definition at line 788 of file structural_element_base.h.

◆ _property

const MAST::ElementPropertyCardBase& MAST::StructuralElementBase::_property
protected

element property

Definition at line 746 of file structural_element_base.h.

◆ follower_forces

bool MAST::StructuralElementBase::follower_forces

flag for follower forces

Definition at line 439 of file structural_element_base.h.


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