20 #ifndef MAST_MAST_STRUCTURAL_ELEMENT_1D_H 21 #define MAST_MAST_STRUCTURAL_ELEMENT_1D_H 74 std::unique_ptr<MAST::StructuralElementBase>
elem_base;
95 rho(
"rho_param", 1420.5),
96 alpha(
"alpha_param", 5.43e-05),
97 cp(
"cp_param", 908.0),
100 thickness_y(
"thy_param", 0.06),
101 thickness_z(
"thz_param", 0.04),
102 offset_y(
"offy_param", 0.035),
103 offset_z(
"offz_param", 0.026),
104 kappa_yy(
"kappa_yy", 5.0/6.0),
105 kappa_zz(
"kappa_zz", 5.0/6.0),
110 alpha_f(
"alpha_expansion", alpha),
113 thicknessy_f(
"hy", thickness_y),
114 thicknessz_f(
"hz", thickness_z),
115 offsety_f(
"hy_off", offset_y),
116 offsetz_f(
"hz_off", offset_z),
117 kappa_yy_f(
"Kappayy", kappa_yy),
118 kappa_zz_f(
"Kappazz", kappa_zz),
120 equation_systems(
mesh),
121 system(equation_systems.add_system<
MAST::NonlinearSystem>(
"structural")),
122 fetype(libMesh::FIRST, libMesh::LAGRANGE),
123 structural_system(system, system.name(), fetype),
124 discipline(equation_systems)
130 material.
add(alpha_f);
135 section.
add(thicknessy_f);
136 section.
add(offsety_f);
137 section.
add(thicknessz_f);
138 section.
add(offsetz_f);
139 section.
add(kappa_yy_f);
140 section.
add(kappa_zz_f);
143 orientation(1) = 1.0;
149 equation_systems.init();
158 const libMesh::DofMap& dof_map = assembly.
system().get_dof_map();
160 n_dofs = uint(dof_indices.size());
163 elem_solution = RealVectorX::Zero(n_dofs);
168 elem_accel = RealVectorX::Zero(n_dofs);
173 residual = RealVectorX::Zero(n_dofs);
174 jacobian0 = RealMatrixX::Zero(n_dofs, n_dofs);
175 jacobian_xdot0 = RealMatrixX::Zero(n_dofs, n_dofs);
176 jacobian_xddot0 = RealMatrixX::Zero(n_dofs, n_dofs);
177 jacobian = RealMatrixX::Zero(n_dofs, n_dofs);
178 jacobian_fd = RealMatrixX::Zero(n_dofs, n_dofs);
192 #endif // MAST_MAST_STRUCTURAL_ELEMENT_1D_H RealMatrixX jacobian
Matrix storage for Jacobian of the element in a perturbed/modified state.
TestStructuralSingleElement1D(libMesh::ElemType e_type, RealMatrixX &coordinates)
MAST::ConstantFieldFunction thicknessy_f
virtual void init()
Only used by 1D sections.
const MAST::NonlinearSystem & system() const
MAST::ConstantFieldFunction thicknessz_f
MAST::Parameter thickness_y
MAST::ConstantFieldFunction k_f
MAST::ConstantFieldFunction rho_f
RealVectorX elem_solution
RealMatrixX jacobian_xddot0
Matrix storage for acceleration Jacobian of baseline/undeformed element.
MAST::NonlinearImplicitAssembly assembly
MAST::ConstantFieldFunction E_f
This class implements a system for solution of nonlinear systems.
libMesh::Elem * reference_elem
Pointer to the actual libMesh element object.
Storage class for a mesh consisting of a single element used in testing.
virtual void set_material(MAST::MaterialPropertyCardBase &mat)
sets the material card
MAST::PhysicsDisciplineBase discipline
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...
MAST::Parameter thickness_z
MAST::ConstantFieldFunction offsety_f
RealVectorX & y_vector()
returns value of the property val.
MAST::StructuralElement1D * elem
MAST::Solid1DSectionElementPropertyCard section
This is a scalar function whose value can be changed and one that can be used as a design variable in...
virtual bool inertial_residual(bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xddot, RealMatrixX &jac_xdot, RealMatrixX &jac)
inertial force contribution to system residual
MAST::IsotropicMaterialPropertyCard material
MAST::ConstantFieldFunction offsetz_f
RealMatrixX jacobian_xdot0
Matrix storage for velocity Jacobian of baseline/undeformed element.
void add(MAST::FunctionBase &f)
adds the function to this card and returns a reference to it.
libMesh::LibMeshInit * p_global_init
RealMatrixX jacobian0
Matrix storage for Jacobian of baseline/undeformed element.
MAST::ConstantFieldFunction kappa_zz_f
MAST::ConstantFieldFunction alpha_f
libMesh::EquationSystems equation_systems
Matrix< Real, Dynamic, Dynamic > RealMatrixX
RealMatrixX jacobian_fd
Matrix storage for element Jacobian approximated by finite difference.
MAST::ConstantFieldFunction nu_f
RealVectorX residual
Vector storage for element's residual vector.
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...
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::StructuralSystemInitialization structural_system
This class acts as a wrapper around libMesh::Elem for the purpose of providing a uniform interface fo...
void update_inertial_residual_and_jacobian0()
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::NonlinearSystem & system
void update_residual_and_jacobian0()
std::vector< libMesh::dof_id_type > dof_indices
MAST::ConstantFieldFunction kappa_yy_f
virtual void set_discipline_and_system(MAST::PhysicsDisciplineBase &discipline, MAST::SystemInitialization &system)
attaches a system to this discipline
MAST::ConstantFieldFunction cp_f
void update_residual_and_jacobian()
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 bool internal_residual(bool request_jacobian, RealVectorX &f, RealMatrixX &jac)
Calculates the internal force vector and Jacobian due to strain energy.
std::unique_ptr< MAST::StructuralElementBase > elem_base