20 #ifndef __mast_shell_face_pressure_load_h__ 21 #define __mast_shell_face_pressure_load_h__ 29 namespace Elasticity {
31 template <
typename FEVarType,
32 typename PressureFieldType,
40 using vector_t =
typename Eigen::Matrix<scalar_t, Eigen::Dynamic, 1>;
41 using matrix_t =
typename Eigen::Matrix<scalar_t, Eigen::Dynamic, Eigen::Dynamic>;
67 const uint_t displ_index) {
87 const typename FEVarType::fe_shape_deriv_t
90 for (
uint_t i=0; i<fe.n_q_points(); i++) {
95 for (
uint_t k=0; k<fe.n_basis(); k++)
96 res(k) -= fe.detJxW(i) * fe.phi(i, k) * p;
101 template <
typename ScalarFieldType>
103 const ScalarFieldType& f,
110 const typename FEVarType::fe_shape_deriv_t
113 for (
uint_t i=0; i<fe.n_q_points(); i++) {
118 for (
uint_t k=0; k<fe.n_basis(); k++)
119 res(k) -= fe.detJxW(i) * fe.phi(i, k) * p;
136 #endif // __mast_shell_face_pressure_load_h__ const FEVarType * _fe_var_data
typename FEVarType::scalar_t scalar_t
void set_fe_var_data(const FEVarType &fe, const uint_t displ_index)
This assumes that the face is oriented along the x-axis (+ve or -ve) for a 1D element and in the xy-p...
void compute(ContextType &c, vector_t &res, matrix_t *jac=nullptr) const
void set_pressure(const PressureFieldType &p)
void derivative(ContextType &c, const ScalarFieldType &f, vector_t &res, matrix_t *jac=nullptr) const
typename Eigen::Matrix< scalar_t, Eigen::Dynamic, 1 > vector_t
virtual ~ShellFacePressureLoad()
typename Eigen::Matrix< scalar_t, Eigen::Dynamic, Eigen::Dynamic > matrix_t
#define Assert0(cond, msg)
typename FEVarType::fe_shape_deriv_t::scalar_t basis_scalar_t
const PressureFieldType * _pressure