20 #ifndef MAST_MAST_STRUCTURAL_ELEMENT_2D_H 21 #define MAST_MAST_STRUCTURAL_ELEMENT_2D_H 68 std::unique_ptr<MAST::StructuralElementBase>
elem_base;
89 rho(
"rho_param", 1420.5),
90 alpha(
"alpha_param", 5.43e-05),
91 cp(
"cp_param", 908.0),
94 thickness(
"th_param", 0.06),
95 offset(
"off_param", 0.03),
96 kappa(
"kappa_param", 5.0/6.0),
101 alpha_f(
"alpha_expansion", alpha),
104 thickness_f(
"h", thickness),
105 offset_f(
"off", offset),
106 kappa_f(
"kappa", kappa),
108 equation_systems(
mesh),
109 system(equation_systems.add_system<
MAST::NonlinearSystem>(
"structural")),
110 fetype(libMesh::FIRST, libMesh::LAGRANGE),
111 structural_system(system, system.name(), fetype),
112 discipline(equation_systems)
118 material.
add(alpha_f);
123 section.
add(thickness_f);
124 section.
add(offset_f);
125 section.
add(kappa_f);
130 equation_systems.init();
139 const libMesh::DofMap& dof_map = assembly.
system().get_dof_map();
141 n_dofs = uint(dof_indices.size());
144 elem_solution = RealVectorX::Zero(n_dofs);
149 elem_accel = RealVectorX::Zero(n_dofs);
154 residual = RealVectorX::Zero(n_dofs);
155 jacobian0 = RealMatrixX::Zero(n_dofs, n_dofs);
156 jacobian_xdot0 = RealMatrixX::Zero(n_dofs, n_dofs);
157 jacobian_xddot0 = RealMatrixX::Zero(n_dofs, n_dofs);
158 jacobian = RealMatrixX::Zero(n_dofs, n_dofs);
159 jacobian_fd = RealMatrixX::Zero(n_dofs, n_dofs);
168 #endif //MAST_MAST_STRUCTURAL_ELEMENT_2D_H MAST::Parameter k
Thermal conductivity.
MAST::Parameter offset
Section offset.
MAST::ConstantFieldFunction nu_f
const MAST::NonlinearSystem & system() const
RealVectorX residual
Vector storage for element's residual vector.
RealMatrixX jacobian
Matrix storage for Jacobian of the element in a perturbed/modified state.
MAST::ConstantFieldFunction offset_f
MAST::ConstantFieldFunction thickness_f
This class implements a system for solution of nonlinear systems.
libMesh::Elem * reference_elem
Pointer to the actual libMesh element object.
RealMatrixX jacobian_xddot0
Matrix storage for acceleration Jacobian of baseline/undeformed element.
Storage class for a mesh consisting of a single element used in testing.
MAST::Parameter rho
Density.
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...
RealVectorX elem_solution
MAST::Parameter cp
Specific heat capacity.
MAST::ConstantFieldFunction rho_f
void update_residual_and_jacobian0()
This is a scalar function whose value can be changed and one that can be used as a design variable in...
MAST::StructuralSystemInitialization structural_system
MAST::NonlinearSystem & system
void update_residual_and_jacobian()
virtual bool inertial_residual(bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xddot, RealMatrixX &jac_xdot, RealMatrixX &jac)
inertial force contribution to system residual
MAST::ConstantFieldFunction k_f
MAST::Solid2DSectionElementPropertyCard section
RealMatrixX jacobian_xdot0
Matrix storage for velocity Jacobian of baseline/undeformed element.
MAST::Parameter thickness
Section thickness.
MAST::NonlinearImplicitAssembly assembly
MAST::Parameter E
Modulus of Elasticity.
void add(MAST::FunctionBase &f)
adds the function to this card and returns a reference to it.
virtual bool internal_residual(bool request_jacobian, RealVectorX &f, RealMatrixX &jac)
Calculates the internal residual vector and Jacobian due to strain energy.
libMesh::LibMeshInit * p_global_init
MAST::ConstantFieldFunction kappa_f
MAST::PhysicsDisciplineBase discipline
MAST::Parameter nu
Poisson's ratio.
std::unique_ptr< MAST::StructuralElementBase > elem_base
Matrix< Real, Dynamic, Dynamic > RealMatrixX
TestStructuralSingleElement2D(libMesh::ElemType e_type, RealMatrixX &coordinates)
void update_inertial_residual_and_jacobian0()
MAST::ConstantFieldFunction alpha_f
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...
RealMatrixX jacobian0
Matrix storage for Jacobian of baseline/undeformed element.
Matrix< Real, Dynamic, 1 > RealVectorX
std::unique_ptr< MAST::StructuralElementBase > build_structural_element(MAST::SystemInitialization &sys, const MAST::GeomElem &elem, const MAST::ElementPropertyCardBase &p)
builds the structural element for the specified element type
MAST::ConstantFieldFunction cp_f
MAST::ConstantFieldFunction E_f
This class acts as a wrapper around libMesh::Elem for the purpose of providing a uniform interface fo...
MAST::Parameter alpha
Coefficient of thermal expansion.
void set_property_for_subdomain(const libMesh::subdomain_id_type sid, const MAST::ElementPropertyCardBase &prop)
sets the same property for all elements in the specified subdomain
MAST::StructuralElement2D * elem
MAST::Parameter kappa
Shear coefficient.
virtual void set_discipline_and_system(MAST::PhysicsDisciplineBase &discipline, MAST::SystemInitialization &system)
attaches a system to this discipline
libMesh::EquationSystems equation_systems
virtual void init(const libMesh::Elem &elem, const MAST::SystemInitialization &sys_init)
initialize the object for the specified reference elem.
libMesh::ReplicatedMesh mesh
The actual libMesh mesh object.
virtual void set_material(MAST::MaterialPropertyCardBase &mat)
sets the material card
std::vector< libMesh::dof_id_type > dof_indices
RealMatrixX jacobian_fd
Matrix storage for element Jacobian approximated by finite difference.
MAST::IsotropicMaterialPropertyCard material