27 namespace HydroMechanics
31 template <
typename ShapeFunctionDisplacement,
32 typename ShapeFunctionPressure,
33 typename IntegrationMethod,
46 std::size_t
const n_variables,
47 std::size_t
const local_matrix_size,
48 std::vector<unsigned>
const& dofIndex_to_localIndex,
49 bool const is_axially_symmetric,
50 unsigned const integration_order,
55 double const )
override
65 Eigen::VectorXd
const& local_x,
66 Eigen::VectorXd
const& local_x_dot,
67 Eigen::VectorXd& local_rhs,
68 Eigen::MatrixXd& local_Jac)
override;
71 double const t,
double const dt,
72 Eigen::Ref<const Eigen::VectorXd>
const& p,
73 Eigen::Ref<const Eigen::VectorXd>
const& p_dot,
74 Eigen::Ref<const Eigen::VectorXd>
const& u,
75 Eigen::Ref<const Eigen::VectorXd>
const& u_dot,
76 Eigen::Ref<Eigen::VectorXd> rhs_p, Eigen::Ref<Eigen::VectorXd> rhs_u,
77 Eigen::Ref<Eigen::MatrixXd> J_pp, Eigen::Ref<Eigen::MatrixXd> J_pu,
78 Eigen::Ref<Eigen::MatrixXd> J_uu, Eigen::Ref<Eigen::MatrixXd> J_up);
81 double const t,
double const dt,
82 Eigen::VectorXd
const& local_x)
override;
85 double const t,
double const dt,
86 Eigen::Ref<const Eigen::VectorXd>
const& p,
87 Eigen::Ref<const Eigen::VectorXd>
const& u);
90 double const t, Eigen::Ref<Eigen::VectorXd> p);
108 ShapeFunctionDisplacement::NPOINTS>;
115 Eigen::aligned_allocator<IntegrationPointDataType>>
122 ShapeFunctionDisplacement::NPOINTS * GlobalDim;
std::vector< IntegrationPointDataType, Eigen::aligned_allocator< IntegrationPointDataType > > _ip_data
void setPressureDotOfInactiveNodes(Eigen::Ref< Eigen::VectorXd > p_dot)
void assembleWithJacobianConcrete(double const t, double const dt, Eigen::VectorXd const &local_x, Eigen::VectorXd const &local_x_dot, Eigen::VectorXd &local_rhs, Eigen::MatrixXd &local_Jac) override
static const int pressure_size
static const int kelvin_vector_size
BMatrixPolicyType< ShapeFunctionDisplacement, GlobalDim > BMatricesType
ShapeMatrixPolicyType< ShapeFunctionPressure, GlobalDim > ShapeMatricesTypePressure
Eigen::Matrix< double, GlobalDim, 1 > GlobalDimVector
static const int displacement_index
HydroMechanicsProcessData< GlobalDim > & _process_data
void setPressureOfInactiveNodes(double const t, Eigen::Ref< Eigen::VectorXd > p)
HydroMechanicsLocalAssemblerMatrix(HydroMechanicsLocalAssemblerMatrix &&)=delete
static const int pressure_index
static const int displacement_size
HydroMechanicsLocalAssemblerMatrix(HydroMechanicsLocalAssemblerMatrix const &)=delete
void postTimestepConcreteWithVector(double const t, double const dt, Eigen::VectorXd const &local_x) override
void postTimestepConcreteWithBlockVectors(double const t, double const dt, Eigen::Ref< const Eigen::VectorXd > const &p, Eigen::Ref< const Eigen::VectorXd > const &u)
ShapeMatrixPolicyType< ShapeFunctionDisplacement, GlobalDim > ShapeMatricesTypeDisplacement
void preTimestepConcrete(std::vector< double > const &, double const, double const) override
IntegrationPointDataMatrix< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, GlobalDim, ShapeFunctionDisplacement::NPOINTS > IntegrationPointDataType
void assembleBlockMatricesWithJacobian(double const t, double const dt, Eigen::Ref< const Eigen::VectorXd > const &p, Eigen::Ref< const Eigen::VectorXd > const &p_dot, Eigen::Ref< const Eigen::VectorXd > const &u, Eigen::Ref< const Eigen::VectorXd > const &u_dot, Eigen::Ref< Eigen::VectorXd > rhs_p, Eigen::Ref< Eigen::VectorXd > rhs_u, Eigen::Ref< Eigen::MatrixXd > J_pp, Eigen::Ref< Eigen::MatrixXd > J_pu, Eigen::Ref< Eigen::MatrixXd > J_uu, Eigen::Ref< Eigen::MatrixXd > J_up)
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.