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

Detailed Description

Definition at line 42 of file structural_element_2d.h.

#include <structural_element_2d.h>

Inheritance diagram for MAST::StructuralElement2D:
Collaboration diagram for MAST::StructuralElement2D:

Public Member Functions

 StructuralElement2D (MAST::SystemInitialization &sys, const MAST::GeomElem &elem, const MAST::ElementPropertyCardBase &p)
 
virtual ~StructuralElement2D ()
 
virtual bool calculate_stress (bool request_derivative, const MAST::FunctionBase *p, MAST::StressStrainOutputBase &output)
 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)
 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)
 
virtual bool if_incompatible_modes () const
 
virtual bool internal_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac)
 Calculates the internal residual vector and Jacobian due to strain energy. 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)
 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)
 calculates d[J]/d{x} . More...
 
virtual bool internal_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac)
 Calculates the sensitivity internal residual vector and Jacobian due to strain energy. More...
 
virtual unsigned int n_direct_strain_components ()
 row dimension of the direct strain matrix, also used for the bending operator row dimension More...
 
virtual unsigned int n_von_karman_strain_components ()
 row dimension of the von Karman strain matrix More...
 
virtual bool prestress_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac)
 Calculates the internal residual vector and Jacobian due to strain energy coming from a prestress. More...
 
virtual bool prestress_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac)
 Calculates the internal residual vector and Jacobian due to strain energy coming from a prestress. More...
 
virtual void thermal_residual_temperature_derivative (const MAST::FEBase &fe_thermal, RealMatrixX &m)
 
- Public Member Functions inherited from MAST::BendingStructuralElem
 BendingStructuralElem (MAST::SystemInitialization &sys, const MAST::GeomElem &elem, const MAST::ElementPropertyCardBase &p)
 
virtual ~BendingStructuralElem ()
 destructor More...
 
- Public Member Functions inherited from MAST::StructuralElementBase
 StructuralElementBase (MAST::SystemInitialization &sys, const MAST::GeomElem &elem, const MAST::ElementPropertyCardBase &p)
 Constructor. More...
 
virtual ~StructuralElementBase ()
 
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 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...
 
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 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...
 
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 ()
 

Protected Member Functions

void _compute_stress (MAST::FEBase &fe, unsigned int qp, RealVectorX &stress, RealMatrixX *dstress_dX)
 Computes the stress at the specified quadrature point of the FE data structure. More...
 
void _compute_stress_gradient (MAST::FEBase &fe, unsigned int qp, RealMatrixX &stress_grad, std::vector< RealMatrixX > *dstress_grad_dX)
 computes the gradient of stress in Voigt notation in stress_grad where the three columns are the derivative of stress in x, y, z, respectively. More...
 
void _compute_stress_gradient_sensitivity (const MAST::FunctionBase &f, MAST::FEBase &fe, unsigned int qp, RealMatrixX &stress_grad)
 
void _compute_stress_sensitivity (const MAST::FunctionBase &f, MAST::FEBase &fe, unsigned int qp, RealVectorX &stress)
 
void _convert_prestress_A_mat_to_vector (const RealMatrixX &mat, RealVectorX &vec) const
 converts the prestress stress tensor to a vector representation More...
 
void _convert_prestress_B_mat_to_vector (const RealMatrixX &mat, RealVectorX &vec) const
 converts the prestress stress tensor to a vector representation More...
 
virtual void _internal_residual_operation (bool if_vk, const unsigned int n2, const unsigned int qp, const MAST::FEBase &fe, const std::vector< Real > &JxW, bool request_jacobian, RealVectorX &local_f, RealMatrixX &local_jac, RealVectorX &local_disp, RealVectorX &strain_mem, MAST::BendingOperator2D *bend, FEMOperatorMatrix &Bmat_lin, FEMOperatorMatrix &Bmat_nl_x, FEMOperatorMatrix &Bmat_nl_y, FEMOperatorMatrix &Bmat_nl_u, FEMOperatorMatrix &Bmat_nl_v, MAST::FEMOperatorMatrix &Bmat_bend, MAST::FEMOperatorMatrix &Bmat_vk, RealMatrixX &mat_x, RealMatrixX &mat_y, RealMatrixX &stress, RealMatrixX &vk_dwdxi_mat, RealMatrixX &material_A_mat, RealMatrixX &material_B_mat, RealMatrixX &material_D_mat, RealVectorX &vec1_n1, RealVectorX &vec2_n1, RealVectorX &vec3_n2, RealVectorX &vec4_2, RealVectorX &vec5_2, RealVectorX &vec6_n2, RealMatrixX &mat1_n1n2, RealMatrixX &mat2_n2n2, RealMatrixX &mat3, RealMatrixX &mat4_2n2, RealMatrixX &mat5_3n2)
 performs integration at the quadrature point for the provided matrices. More...
 
void _surface_normal_voigt_notation (const RealVectorX &normal, RealMatrixX &normal_mat)
 creates a matrix that can be multiplied with the Voigt notation of stress to compute the surface normal traction More...
 
virtual void initialize_green_lagrange_strain_operator (const unsigned int qp, const MAST::FEBase &fe, const RealVectorX &local_disp, RealVectorX &epsilon, RealMatrixX &mat_x, RealMatrixX &mat_y, MAST::FEMOperatorMatrix &Bmat_lin, MAST::FEMOperatorMatrix &Bmat_nl_x, MAST::FEMOperatorMatrix &Bmat_nl_y, MAST::FEMOperatorMatrix &Bmat_nl_u, MAST::FEMOperatorMatrix &Bmat_nl_v)
 
virtual void initialize_strain_operator_gradient (const unsigned int qp, const MAST::FEBase &fe, const RealVectorX &local_disp, RealMatrixX &epsilon_grad, std::vector< MAST::FEMOperatorMatrix > &dBmat_lin)
 
virtual void initialize_von_karman_strain_operator (const unsigned int qp, const MAST::FEBase &fe, RealVectorX &vk_strain, RealMatrixX &vk_dwdxi_mat, MAST::FEMOperatorMatrix &Bmat_vk)
 initialze the von Karman strain in vK_strain, the operator matrices needed for Jacobian calculation. More...
 
virtual void initialize_von_karman_strain_operator_sensitivity (const unsigned int qp, const MAST::FEBase &fe, RealMatrixX &vk_dwdxi_mat_sens)
 initialze the sensitivity of von Karman operator matrices needed for Jacobian calculation. More...
 
virtual bool linearized_frequency_domain_surface_pressure_residual (bool request_jacobian, ComplexVectorX &f, ComplexMatrixX &jac, const unsigned int side, MAST::BoundaryConditionBase &bc)
 Calculates the force vector and Jacobian due to small perturbation surface pressure. 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)
 Calculates the sensitivity of force vector and Jacobian due to small is applicable for perturbation surface pressure. More...
 
virtual bool piston_theory_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac, MAST::BoundaryConditionBase &bc)
 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)
 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)
 Calculates the sensitivity of 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)
 Calculates the force vector and Jacobian due to piston-theory based surface pressure on the side identified by side. More...
 
bool surface_pressure_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac, const unsigned int side, MAST::BoundaryConditionBase &bc)
 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, const unsigned int side, 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)
 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)
 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)
 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)
 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)
 Calculates the residual 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)
 calculates the term on side s: $ \int_\Gamma a(\delta u, u) v_n ~d\Gamma $. More...
 
virtual bool thermal_residual_sensitivity (const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac, MAST::BoundaryConditionBase &bc)
 Calculates the sensitivity of residual vector and the Jacobian due to thermal stresses. More...
 
- Protected Member Functions inherited from MAST::StructuralElementBase
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, 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 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, 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, MAST::BoundaryConditionBase &bc)
 Calculates the force vector and Jacobian due to surface pressure. More...
 

Additional Inherited Members

- Public Attributes inherited from MAST::StructuralElementBase
bool follower_forces
 flag for follower forces More...
 
- Protected Attributes inherited from MAST::StructuralElementBase
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

◆ StructuralElement2D()

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

Definition at line 39 of file structural_element_2d.cpp.

◆ ~StructuralElement2D()

MAST::StructuralElement2D::~StructuralElement2D ( )
virtual

Definition at line 48 of file structural_element_2d.cpp.

Member Function Documentation

◆ _compute_stress()

void MAST::StructuralElement2D::_compute_stress ( MAST::FEBase fe,
unsigned int  qp,
RealVectorX stress,
RealMatrixX dstress_dX 
)
protected

Computes the stress at the specified quadrature point of the FE data structure.

The FE object must already be initialized. The derivative of the stress with respect to the state variables is computed if a pointer to the matrix is provided.

Definition at line 4178 of file structural_element_2d.cpp.

◆ _compute_stress_gradient()

void MAST::StructuralElement2D::_compute_stress_gradient ( MAST::FEBase fe,
unsigned int  qp,
RealMatrixX stress_grad,
std::vector< RealMatrixX > *  dstress_grad_dX 
)
protected

computes the gradient of stress in Voigt notation in stress_grad where the three columns are the derivative of stress in x, y, z, respectively.

If a pointer is provided in dstress_grad_dX then each element of this vector contains the derive of the gradient matrix column wrt the state variables.

Definition at line 4657 of file structural_element_2d.cpp.

◆ _compute_stress_gradient_sensitivity()

void MAST::StructuralElement2D::_compute_stress_gradient_sensitivity ( const MAST::FunctionBase f,
MAST::FEBase fe,
unsigned int  qp,
RealMatrixX stress_grad 
)
protected

Definition at line 4873 of file structural_element_2d.cpp.

◆ _compute_stress_sensitivity()

void MAST::StructuralElement2D::_compute_stress_sensitivity ( const MAST::FunctionBase f,
MAST::FEBase fe,
unsigned int  qp,
RealVectorX stress 
)
protected

Definition at line 4477 of file structural_element_2d.cpp.

◆ _convert_prestress_A_mat_to_vector()

void MAST::StructuralElement2D::_convert_prestress_A_mat_to_vector ( const RealMatrixX mat,
RealVectorX vec 
) const
protected

converts the prestress stress tensor to a vector representation

Definition at line 2025 of file structural_element_2d.cpp.

◆ _convert_prestress_B_mat_to_vector()

void MAST::StructuralElement2D::_convert_prestress_B_mat_to_vector ( const RealMatrixX mat,
RealVectorX vec 
) const
protected

converts the prestress stress tensor to a vector representation

Definition at line 2039 of file structural_element_2d.cpp.

◆ _internal_residual_operation()

void MAST::StructuralElement2D::_internal_residual_operation ( bool  if_vk,
const unsigned int  n2,
const unsigned int  qp,
const MAST::FEBase fe,
const std::vector< Real > &  JxW,
bool  request_jacobian,
RealVectorX local_f,
RealMatrixX local_jac,
RealVectorX local_disp,
RealVectorX strain_mem,
MAST::BendingOperator2D bend,
FEMOperatorMatrix Bmat_lin,
FEMOperatorMatrix Bmat_nl_x,
FEMOperatorMatrix Bmat_nl_y,
FEMOperatorMatrix Bmat_nl_u,
FEMOperatorMatrix Bmat_nl_v,
MAST::FEMOperatorMatrix Bmat_bend,
MAST::FEMOperatorMatrix Bmat_vk,
RealMatrixX mat_x,
RealMatrixX mat_y,
RealMatrixX stress,
RealMatrixX vk_dwdxi_mat,
RealMatrixX material_A_mat,
RealMatrixX material_B_mat,
RealMatrixX material_D_mat,
RealVectorX vec1_n1,
RealVectorX vec2_n1,
RealVectorX vec3_n2,
RealVectorX vec4_2,
RealVectorX vec5_2,
RealVectorX vec6_n2,
RealMatrixX mat1_n1n2,
RealMatrixX mat2_n2n2,
RealMatrixX mat3,
RealMatrixX mat4_2n2,
RealMatrixX mat5_3n2 
)
protectedvirtual

performs integration at the quadrature point for the provided matrices.

The temperature vector and matrix entities are provided for integration

Definition at line 1767 of file structural_element_2d.cpp.

◆ _surface_normal_voigt_notation()

void MAST::StructuralElement2D::_surface_normal_voigt_notation ( const RealVectorX normal,
RealMatrixX normal_mat 
)
protected

creates a matrix that can be multiplied with the Voigt notation of stress to compute the surface normal traction

Definition at line 5053 of file structural_element_2d.cpp.

◆ calculate_stress()

bool MAST::StructuralElement2D::calculate_stress ( bool  request_derivative,
const MAST::FunctionBase p,
MAST::StressStrainOutputBase output 
)
virtual

Calculates the stress tensor.

Implements MAST::StructuralElementBase.

Definition at line 307 of file structural_element_2d.cpp.

◆ calculate_stress_boundary_velocity()

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

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

Implements MAST::StructuralElementBase.

Definition at line 716 of file structural_element_2d.cpp.

◆ calculate_stress_temperature_derivative()

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

Implements MAST::StructuralElementBase.

Definition at line 958 of file structural_element_2d.cpp.

◆ if_incompatible_modes()

virtual bool MAST::StructuralElement2D::if_incompatible_modes ( ) const
inlinevirtual
Returns
false since this element formulation does not use incompatible modes

Implements MAST::StructuralElementBase.

Definition at line 123 of file structural_element_2d.h.

◆ initialize_green_lagrange_strain_operator()

void MAST::StructuralElement2D::initialize_green_lagrange_strain_operator ( const unsigned int  qp,
const MAST::FEBase fe,
const RealVectorX local_disp,
RealVectorX epsilon,
RealMatrixX mat_x,
RealMatrixX mat_y,
MAST::FEMOperatorMatrix Bmat_lin,
MAST::FEMOperatorMatrix Bmat_nl_x,
MAST::FEMOperatorMatrix Bmat_nl_y,
MAST::FEMOperatorMatrix Bmat_nl_u,
MAST::FEMOperatorMatrix Bmat_nl_v 
)
protectedvirtual

Definition at line 143 of file structural_element_2d.cpp.

◆ initialize_strain_operator_gradient()

void MAST::StructuralElement2D::initialize_strain_operator_gradient ( const unsigned int  qp,
const MAST::FEBase fe,
const RealVectorX local_disp,
RealMatrixX epsilon_grad,
std::vector< MAST::FEMOperatorMatrix > &  dBmat_lin 
)
protectedvirtual

Definition at line 255 of file structural_element_2d.cpp.

◆ initialize_von_karman_strain_operator()

void MAST::StructuralElement2D::initialize_von_karman_strain_operator ( const unsigned int  qp,
const MAST::FEBase fe,
RealVectorX vk_strain,
RealMatrixX vk_dwdxi_mat,
MAST::FEMOperatorMatrix Bmat_vk 
)
protectedvirtual

initialze the von Karman strain in vK_strain, the operator matrices needed for Jacobian calculation.

vk_strain = [dw/dx 0; 0 dw/dy; dw/dy dw/dx] Bmat_vk = [dw/dx; dw/dy]

Definition at line 57 of file structural_element_2d.cpp.

◆ initialize_von_karman_strain_operator_sensitivity()

void MAST::StructuralElement2D::initialize_von_karman_strain_operator_sensitivity ( const unsigned int  qp,
const MAST::FEBase fe,
RealMatrixX vk_dwdxi_mat_sens 
)
protectedvirtual

initialze the sensitivity of von Karman operator matrices needed for Jacobian calculation.

vk_dwdxi_mat_sens = [dw/dx 0; 0 dw/dy; dw/dy dw/dx]

Definition at line 107 of file structural_element_2d.cpp.

◆ internal_residual()

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

Calculates the internal residual vector and Jacobian due to strain energy.

Implements MAST::StructuralElementBase.

Definition at line 1076 of file structural_element_2d.cpp.

◆ internal_residual_boundary_velocity()

void MAST::StructuralElement2D::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 
)
virtual

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

Implements MAST::StructuralElementBase.

Definition at line 1403 of file structural_element_2d.cpp.

◆ internal_residual_jac_dot_state_sensitivity()

bool MAST::StructuralElement2D::internal_residual_jac_dot_state_sensitivity ( RealMatrixX jac)
virtual

calculates d[J]/d{x} .

d{x}/dp

Implements MAST::StructuralElementBase.

Definition at line 1572 of file structural_element_2d.cpp.

◆ internal_residual_sensitivity()

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

Calculates the sensitivity internal residual vector and Jacobian due to strain energy.

Implements MAST::StructuralElementBase.

Definition at line 1234 of file structural_element_2d.cpp.

◆ linearized_frequency_domain_surface_pressure_residual()

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

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

Implements MAST::StructuralElementBase.

Definition at line 321 of file structural_element_2d.h.

◆ linearized_frequency_domain_surface_pressure_residual_sensitivity()

virtual bool MAST::StructuralElement2D::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 
)
inlineprotectedvirtual

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

Implements MAST::StructuralElementBase.

Definition at line 338 of file structural_element_2d.h.

◆ n_direct_strain_components()

virtual unsigned int MAST::StructuralElement2D::n_direct_strain_components ( )
inlinevirtual

row dimension of the direct strain matrix, also used for the bending operator row dimension

Implements MAST::BendingStructuralElem.

Definition at line 56 of file structural_element_2d.h.

◆ n_von_karman_strain_components()

virtual unsigned int MAST::StructuralElement2D::n_von_karman_strain_components ( )
inlinevirtual

row dimension of the von Karman strain matrix

Implements MAST::BendingStructuralElem.

Definition at line 63 of file structural_element_2d.h.

◆ piston_theory_residual() [1/2]

bool MAST::StructuralElement2D::piston_theory_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xdot,
RealMatrixX jac,
MAST::BoundaryConditionBase bc 
)
protectedvirtual

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.

Implements MAST::StructuralElementBase.

Definition at line 3818 of file structural_element_2d.cpp.

◆ piston_theory_residual() [2/2]

bool MAST::StructuralElement2D::piston_theory_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xdot,
RealMatrixX jac,
const unsigned int  side,
MAST::BoundaryConditionBase bc 
)
protectedvirtual

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.

Implements MAST::StructuralElementBase.

Definition at line 3782 of file structural_element_2d.cpp.

◆ piston_theory_residual_sensitivity() [1/2]

bool MAST::StructuralElement2D::piston_theory_residual_sensitivity ( const MAST::FunctionBase p,
bool  request_jacobian,
RealVectorX f,
RealMatrixX jac_xdot,
RealMatrixX jac,
MAST::BoundaryConditionBase bc 
)
protectedvirtual

Calculates the sensitivity of 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.

Implements MAST::StructuralElementBase.

Definition at line 3996 of file structural_element_2d.cpp.

◆ piston_theory_residual_sensitivity() [2/2]

bool MAST::StructuralElement2D::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 
)
protectedvirtual

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.

Implements MAST::StructuralElementBase.

Definition at line 3799 of file structural_element_2d.cpp.

◆ prestress_residual()

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

Calculates the internal residual vector and Jacobian due to strain energy coming from a prestress.

Implements MAST::StructuralElementBase.

Definition at line 2054 of file structural_element_2d.cpp.

◆ prestress_residual_sensitivity()

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

Calculates the internal residual vector and Jacobian due to strain energy coming from a prestress.

Implements MAST::StructuralElementBase.

Definition at line 2205 of file structural_element_2d.cpp.

◆ surface_pressure_residual()

bool MAST::StructuralElement2D::surface_pressure_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac,
const unsigned int  side,
MAST::BoundaryConditionBase bc 
)
protectedvirtual

Calculates the force vector and Jacobian due to surface pressure.

Implements MAST::StructuralElementBase.

Definition at line 2857 of file structural_element_2d.cpp.

◆ surface_pressure_residual_sensitivity()

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

Calculates the force vector and Jacobian due to surface pressure.

Implements MAST::StructuralElementBase.

Definition at line 2932 of file structural_element_2d.cpp.

◆ surface_traction_residual()

bool MAST::StructuralElement2D::surface_traction_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac,
const unsigned int  side,
MAST::BoundaryConditionBase bc 
)
protectedvirtual

Calculates the force vector and Jacobian due to surface traction.

Implements MAST::StructuralElementBase.

Definition at line 2358 of file structural_element_2d.cpp.

◆ surface_traction_residual_sensitivity()

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

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

Implements MAST::StructuralElementBase.

Definition at line 2431 of file structural_element_2d.cpp.

◆ surface_traction_residual_shifted_boundary()

bool MAST::StructuralElement2D::surface_traction_residual_shifted_boundary ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac,
const unsigned int  side,
MAST::BoundaryConditionBase bc 
)
protectedvirtual

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

Implements MAST::StructuralElementBase.

Definition at line 2510 of file structural_element_2d.cpp.

◆ surface_traction_residual_shifted_boundary_sensitivity()

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

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

Implements MAST::StructuralElementBase.

Definition at line 2663 of file structural_element_2d.cpp.

◆ thermal_residual()

bool MAST::StructuralElement2D::thermal_residual ( bool  request_jacobian,
RealVectorX f,
RealMatrixX jac,
MAST::BoundaryConditionBase bc 
)
protectedvirtual

Calculates the residual vector and Jacobian due to thermal stresses.

Implements MAST::StructuralElementBase.

Definition at line 3012 of file structural_element_2d.cpp.

◆ thermal_residual_boundary_velocity()

void MAST::StructuralElement2D::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 
)
protectedvirtual

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

Implements MAST::StructuralElementBase.

Definition at line 3421 of file structural_element_2d.cpp.

◆ thermal_residual_sensitivity()

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

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

Implements MAST::StructuralElementBase.

Definition at line 3208 of file structural_element_2d.cpp.

◆ thermal_residual_temperature_derivative()

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

Implements MAST::StructuralElementBase.

Definition at line 3625 of file structural_element_2d.cpp.


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