26namespace HydroMechanics
30template <
typename ShapeMatrixType>
33 std::vector<ShapeMatrixType, Eigen::aligned_allocator<ShapeMatrixType>>
N;
43 bool const is_axially_symmetric,
45 std::size_t n_local_size,
47 dofIndex_to_localIndex)
60 std::vector<double>
const& ,
61 std::vector<double>
const& ,
62 std::vector<double>& ,
63 std::vector<double>& ,
64 std::vector<double>& )
override
67 "HydroMechanicsLocalAssembler: assembly without jacobian is not "
72 std::vector<double>
const& local_x_,
73 std::vector<double>
const& local_x_prev_,
74 std::vector<double>& local_b_data,
75 std::vector<double>& local_Jac_data)
override
77 auto const local_dof_size = local_x_.size();
80 for (
unsigned i = 0; i < local_dof_size; i++)
85 for (
unsigned i = 0; i < local_dof_size; i++)
95 local_b_data.resize(local_dof_size);
96 for (
unsigned i = 0; i < local_dof_size; i++)
101 local_Jac_data.resize(local_dof_size * local_dof_size);
102 for (
unsigned i = 0; i < local_dof_size; i++)
104 for (
unsigned j = 0; j < local_dof_size; j++)
106 local_Jac_data[i * local_dof_size + j] =
_local_J(
113 Eigen::VectorXd
const& ,
114 const double t,
double const dt,
118 for (Eigen::Index i = 0; i < local_x_.rows(); i++)
128 std::vector<GlobalVector*>
const& x,
129 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
130 std::vector<double>& cache)
const = 0;
134 std::vector<GlobalVector*>
const& x,
135 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
136 std::vector<double>& cache)
const = 0;
140 std::vector<GlobalVector*>
const& x,
141 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
142 std::vector<double>& cache)
const = 0;
146 std::vector<GlobalVector*>
const& x,
147 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
148 std::vector<double>& cache)
const = 0;
152 std::vector<GlobalVector*>
const& x,
153 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
154 std::vector<double>& cache)
const = 0;
158 std::vector<GlobalVector*>
const& x,
159 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
160 std::vector<double>& cache)
const = 0;
164 std::vector<GlobalVector*>
const& x,
165 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
166 std::vector<double>& cache)
const = 0;
170 double const t,
double const dt, Eigen::VectorXd
const& local_u,
171 Eigen::VectorXd
const& local_u_prev, Eigen::VectorXd& local_b,
172 Eigen::MatrixXd& local_J) = 0;
175 double const t,
double const dt, Eigen::VectorXd
const& local_u) = 0;
Definition of the Element class.
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