29 namespace OrthotropicProperty3D {
40 virtual void operator() (
const libMesh::Point& p,
46 const libMesh::Point& p,
66 virtual void operator() (
const libMesh::Point& p,
71 const libMesh::Point& p,
91 virtual void operator() (
const libMesh::Point& p,
96 const libMesh::Point& p,
118 virtual void operator() (
const libMesh::Point& p,
124 const libMesh::Point& p,
148 virtual void operator() (
const libMesh::Point& p,
154 const libMesh::Point& p,
177 virtual void operator() (
const libMesh::Point& p,
183 const libMesh::Point& p,
199 return _material->depends_on(f) ||
223 A = RealMatrixX::Zero(3, 3),
224 Tinv = RealMatrixX::Zero(6, 6);
244 m = Tinv * m * Tinv.transpose();
252 const libMesh::Point& p,
257 dm = RealMatrixX::Zero(6, 6),
258 A = RealMatrixX::Zero(3, 3),
259 dA = RealMatrixX::Zero(3, 3),
260 Tinv = RealMatrixX::Zero(6, 6),
261 dTinv= RealMatrixX::Zero(6, 6);
273 dTinv * m * Tinv.transpose() +
274 Tinv * dm * Tinv.transpose() +
275 Tinv * m * dTinv.transpose();
284 _material_inertia(mat) {
305 const libMesh::Point& p,
320 _material_stiffness(mat_stiff),
321 _material_expansion(mat_expansion),
338 mat = RealMatrixX::Zero(6,1),
339 A = RealMatrixX::Zero(3, 3),
340 Tinv = RealMatrixX::Zero(6, 6);
366 const libMesh::Point& p,
371 dm = RealMatrixX::Zero(6, 6),
372 mat = RealMatrixX::Zero(6, 1),
373 dmat = RealMatrixX::Zero(6, 1),
374 A = RealMatrixX::Zero(3, 3),
375 dA = RealMatrixX::Zero(3, 3),
376 Tinv = RealMatrixX::Zero(6, 6),
377 dTinv= RealMatrixX::Zero(6, 6);
403 _prestress(prestress),
429 const libMesh::Point& p,
461 A = RealMatrixX::Zero(3, 3);
466 m = A.transpose() * m * A;
474 const libMesh::Point& p,
478 dm = RealMatrixX::Zero(3, 3),
479 A = RealMatrixX::Zero(3, 3),
480 dA = RealMatrixX::Zero(3, 3);
488 dA.transpose() * m * A +
489 A.transpose() * dm * A +
490 A.transpose() * m * dA;
525 const libMesh::Point& p,
546 std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
552 (_material->stiffness_matrix(3), *_orient);
554 return std::unique_ptr<MAST::FieldFunction<RealMatrixX> >(rval);
559 std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
563 libmesh_assert(
false);
565 return std::unique_ptr<MAST::FieldFunction<RealMatrixX> >(
nullptr);
571 std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
575 libmesh_assert(
false);
577 return std::unique_ptr<MAST::FieldFunction<RealMatrixX> >(
nullptr);
582 std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
586 libmesh_assert(
false);
588 return std::unique_ptr<MAST::FieldFunction<RealMatrixX> >(
nullptr);
592 std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
598 (_material->inertia_matrix(3));
600 return std::unique_ptr<MAST::FieldFunction<RealMatrixX> >(rval);
605 std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
611 (_material->stiffness_matrix(3),
612 _material->thermal_expansion_matrix(3),
615 return std::unique_ptr<MAST::FieldFunction<RealMatrixX> >(rval);
619 std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
624 return this->thermal_expansion_A_matrix(e);
629 std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
633 libmesh_assert(
false);
635 return std::unique_ptr<MAST::FieldFunction<RealMatrixX> >(
nullptr);
639 std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
643 libmesh_assert(
false);
645 return std::unique_ptr<MAST::FieldFunction<RealMatrixX> >(
nullptr);
649 std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
653 libmesh_assert(
false);
655 return std::unique_ptr<MAST::FieldFunction<RealMatrixX> >(
nullptr);
659 std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
665 (_material->conductance_matrix(3), *_orient);
667 return std::unique_ptr<MAST::FieldFunction<RealMatrixX> >(rval);
671 std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
677 (_material->capacitance_matrix(3));
679 return std::unique_ptr<MAST::FieldFunction<RealMatrixX> >(rval);
const MAST::CoordinateBase & _orient
const MAST::FieldFunction< RealMatrixX > & _material_stiffness
virtual ~ThermalExpansionMatrix()
virtual void operator()(const libMesh::Point &p, const Real t, RealMatrixX &m) const
calculates the value of the function at the specified point, p, and time, t, and returns it in v...
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > inertia_matrix(const MAST::ElementBase &e) const
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > thermal_conductance_matrix(const MAST::ElementBase &e) const
const MAST::FieldFunction< RealMatrixX > & _material_expansion
ThermalConductanceMatrix(const MAST::FieldFunction< RealMatrixX > &mat_cond, const MAST::CoordinateBase &orient)
virtual void derivative(const MAST::FunctionBase &f, const libMesh::Point &p, const Real t, RealMatrixX &m) const
calculates the value of the derivative of function with respect to the function f at the specified po...
virtual void derivative(const MAST::FunctionBase &f, const libMesh::Point &p, const Real t, RealMatrixX &m) const
calculates the value of the derivative of function with respect to the function f at the specified po...
virtual bool depends_on(const MAST::FunctionBase &f) const
returns true if the property card depends on the function f
const MAST::FieldFunction< RealMatrixX > & _mat_cond
virtual void derivative(const MAST::FunctionBase &f, const libMesh::Point &p, const Real t, RealMatrixX &m) const
calculates the value of the derivative of function with respect to the function f at the specified po...
PrestressAMatrix(const MAST::FieldFunction< RealMatrixX > &prestress, const MAST::CoordinateBase &orient)
virtual ~PrestressAMatrix()
const MAST::FieldFunction< RealMatrixX > & _prestress
ThermalExpansionMatrix(const MAST::FieldFunction< RealMatrixX > &mat_stiff, const MAST::FieldFunction< RealMatrixX > &mat_expansion, const MAST::CoordinateBase &orient)
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > thermal_expansion_B_matrix(const MAST::ElementBase &e) const
std::set< const MAST::FunctionBase * > _functions
set of functions that this function depends on
virtual void operator()(const libMesh::Point &p, const Real t, RealMatrixX &m) const
calculates the value of the function at the specified point, p, and time, t, and returns it in v...
const MAST::FieldFunction< RealMatrixX > & _material_inertia
const MAST::FieldFunction< RealMatrixX > & _material_stiffness
virtual ~ThermalCapacitanceMatrix()
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > thermal_capacitance_matrix(const MAST::ElementBase &e) const
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > stiffness_A_matrix(const MAST::ElementBase &e) const
virtual ~ThermalConductanceMatrix()
virtual bool depends_on(const MAST::FunctionBase &f) const
returns true if the property card depends on the function f
const MAST::FieldFunction< RealMatrixX > & _mat_cap
const MAST::CoordinateBase & _orient
virtual void derivative(const MAST::FunctionBase &f, const libMesh::Point &p, const Real t, RealMatrixX &m) const
calculates the value of the derivative of function with respect to the function f at the specified po...
virtual void derivative(const MAST::FunctionBase &f, ValType &v) const
calculates the value of the function derivative and returns it in v.
virtual void operator()(const libMesh::Point &p, const Real t, RealMatrixX &m) const
calculates the value of the function at the specified point, p, and time, t, and returns it in v...
virtual void derivative(const MAST::FunctionBase &f, const libMesh::Point &p, const Real t, RealMatrixX &m) const
calculates the value of the derivative of function with respect to the function f at the specified po...
virtual void derivative(const MAST::FunctionBase &f, const libMesh::Point &p, const Real t, RealMatrixX &m) const
calculates the value of the derivative of function with respect to the function f at the specified po...
Matrix< Real, Dynamic, Dynamic > RealMatrixX
StiffnessMatrix(const MAST::FieldFunction< RealMatrixX > &mat, const MAST::CoordinateBase &orient)
This creates the base class for functions that have a saptial and temporal dependence, and provide sensitivity operations with respect to the functions and parameters.
virtual void operator()(const libMesh::Point &p, const Real t, RealMatrixX &m) const
calculates the value of the function at the specified point, p, and time, t, and returns it in v...
ThermalCapacitanceMatrix(const MAST::FieldFunction< RealMatrixX > &mat_cond)
const MAST::CoordinateBase & _orient
void stress_strain_transformation_matrix(const RealMatrixX &T, RealMatrixX &mat) const
prepares the matrix mat that transforms stress and strain tensors represented in a 6x1 vector from th...
InertiaMatrix(const MAST::FieldFunction< RealMatrixX > &mat)
const MAST::CoordinateBase & _orient
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > damping_matrix(const MAST::ElementBase &e) const
virtual ~OrthotropicElementPropertyCard3D()
virtual destructor
void stress_strain_transformation_matrix_sens(const RealMatrixX &T, const RealMatrixX &dT, RealMatrixX &mat) const
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > prestress_A_matrix(MAST::ElementBase &e) const
virtual ~StiffnessMatrix()
virtual void operator()(const libMesh::Point &p, const Real t, RealMatrixX &m) const
calculates the value of the function at the specified point, p, and time, t, and returns it in v...
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > prestress_B_matrix(MAST::ElementBase &e) const
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > stiffness_D_matrix(const MAST::ElementBase &e) const
virtual void operator()(const libMesh::Point &p, const Real t, RealMatrixX &m) const
calculates the value of the function at the specified point, p, and time, t, and returns it in v...
virtual void set_orientation(const MAST::CoordinateBase &orient)
sets the orientation coordinate system for this section.
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > stiffness_B_matrix(const MAST::ElementBase &e) const
Provides the transformation matrix T to transform vector from the orientation provided in this matrix...
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > transverse_shear_stiffness_matrix(const MAST::ElementBase &e) const
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > thermal_expansion_A_matrix(const MAST::ElementBase &e) const
This is the base class for elements that implement calculation of finite element quantities over the ...