23template <
typename ShapeMatrixType>
26 std::vector<ShapeMatrixType, Eigen::aligned_allocator<ShapeMatrixType>>
N;
36 bool const is_axially_symmetric,
38 std::size_t n_local_size,
40 dofIndex_to_localIndex)
53 std::vector<double>
const& ,
54 std::vector<double>
const& ,
55 std::vector<double>& ,
56 std::vector<double>& ,
57 std::vector<double>& )
override
60 "HydroMechanicsLocalAssembler: assembly without jacobian is not "
65 std::vector<double>
const& local_x_,
66 std::vector<double>
const& local_x_prev_,
67 std::vector<double>& local_b_data,
68 std::vector<double>& local_Jac_data)
override
70 auto const local_dof_size = local_x_.size();
73 for (
unsigned i = 0; i < local_dof_size; i++)
78 for (
unsigned i = 0; i < local_dof_size; i++)
88 local_b_data.resize(local_dof_size);
89 for (
unsigned i = 0; i < local_dof_size; i++)
94 local_Jac_data.resize(local_dof_size * local_dof_size);
95 for (
unsigned i = 0; i < local_dof_size; i++)
97 for (
unsigned j = 0; j < local_dof_size; j++)
99 local_Jac_data[i * local_dof_size + j] =
_local_J(
106 Eigen::VectorXd
const& ,
107 const double t,
double const dt,
111 for (Eigen::Index i = 0; i < local_x_.rows(); i++)
121 std::vector<GlobalVector*>
const& x,
122 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
123 std::vector<double>& cache)
const = 0;
127 std::vector<GlobalVector*>
const& x,
128 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
129 std::vector<double>& cache)
const = 0;
133 std::vector<GlobalVector*>
const& x,
134 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
135 std::vector<double>& cache)
const = 0;
139 std::vector<GlobalVector*>
const& x,
140 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
141 std::vector<double>& cache)
const = 0;
145 std::vector<GlobalVector*>
const& x,
146 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
147 std::vector<double>& cache)
const = 0;
151 std::vector<GlobalVector*>
const& x,
152 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
153 std::vector<double>& cache)
const = 0;
157 std::vector<GlobalVector*>
const& x,
158 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
159 std::vector<double>& cache)
const = 0;
163 double const t,
double const dt, Eigen::VectorXd
const& local_u,
164 Eigen::VectorXd
const& local_u_prev, Eigen::VectorXd& local_b,
165 Eigen::MatrixXd& local_J) = 0;
168 double const t,
double const dt, Eigen::VectorXd
const& local_u) = 0;
virtual void postTimestepConcreteWithVector(double const t, double const dt, Eigen::VectorXd const &local_u)=0
bool const _is_axially_symmetric
virtual std::vector< double > const & getIntPtFracturePermeability(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
MeshLib::Element const & _element
HydroMechanicsLocalAssemblerInterface(MeshLib::Element const &element, bool const is_axially_symmetric, NumLib::GenericIntegrationMethod const &integration_method, std::size_t n_local_size, std::vector< unsigned > dofIndex_to_localIndex)
virtual void assembleWithJacobianConcrete(double const t, double const dt, Eigen::VectorXd const &local_u, Eigen::VectorXd const &local_u_prev, Eigen::VectorXd &local_b, Eigen::MatrixXd &local_J)=0
virtual std::vector< double > const & getIntPtDarcyVelocity(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
NumLib::GenericIntegrationMethod const & _integration_method
virtual std::vector< double > const & getIntPtFractureAperture(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
std::vector< unsigned > const _dofIndex_to_localIndex
void assembleWithJacobian(double const t, double const dt, std::vector< double > const &local_x_, std::vector< double > const &local_x_prev_, std::vector< double > &local_b_data, std::vector< double > &local_Jac_data) override
virtual std::vector< double > const & getIntPtFractureStress(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
void assemble(double const, double const, std::vector< double > const &, std::vector< double > const &, std::vector< double > &, std::vector< double > &, std::vector< double > &) override
virtual std::vector< double > const & getIntPtEpsilon(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
Eigen::VectorXd _local_u_prev
void postTimestepConcrete(Eigen::VectorXd const &local_x_, Eigen::VectorXd const &, const double t, double const dt, int const) override
virtual std::vector< double > const & getIntPtFractureVelocity(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
virtual std::vector< double > const & getIntPtSigma(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
Used for the extrapolation of the integration point values.
std::vector< ShapeMatrixType, Eigen::aligned_allocator< ShapeMatrixType > > N