34 std::vector<double>
const& local_x_prev_ts) = 0;
38 std::vector<GlobalVector*>
const& x,
39 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
40 std::vector<double>& cache)
const = 0;
44 std::vector<GlobalVector*>
const& x,
45 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
46 std::vector<double>& cache)
const = 0;
50 std::vector<GlobalVector*>
const& x,
51 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
52 std::vector<double>& cache)
const = 0;
56 std::vector<GlobalVector*>
const& x,
57 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
58 std::vector<double>& cache)
const = 0;
62 std::vector<GlobalVector*>
const& x,
63 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
64 std::vector<double>& cache)
const = 0;
67template <
typename ShapeFunction_,
int GlobalDim>
77 std::size_t
const local_matrix_size,
79 bool const is_axially_symmetric,
82 void assemble(
double const t,
double const dt,
83 std::vector<double>
const& local_x,
84 std::vector<double>
const& local_x_prev,
85 std::vector<double>& local_M_data,
86 std::vector<double>& local_K_data,
87 std::vector<double>& local_b_data)
override;
90 const unsigned integration_point)
const override
95 return Eigen::Map<const Eigen::RowVectorXd>(N.data(), N.size());
98 bool checkBounds(std::vector<double>
const& local_x,
99 std::vector<double>
const& local_x_prev_ts)
override;
103 std::vector<GlobalVector*>
const& x,
104 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
105 std::vector<double>& cache)
const override;
109 std::vector<GlobalVector*>
const& x,
110 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
111 std::vector<double>& cache)
const override;
115 std::vector<GlobalVector*>
const& x,
116 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
117 std::vector<double>& cache)
const override;
121 std::vector<GlobalVector*>
const& x,
122 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
123 std::vector<double>& cache)
const override;
127 std::vector<GlobalVector*>
const& x,
128 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_table,
129 std::vector<double>& cache)
const override;
136 std::vector<ShapeMatrices, Eigen::aligned_allocator<ShapeMatrices>>
147 static_assert(std::is_same_v<NodalMatrixType, typename LAT::LocalMatrix>,
148 "local matrix and data traits matrix do not coincide");
149 static_assert(std::is_same_v<NodalVectorType, typename LAT::LocalVector>,
150 "local vector and data traits vector do not coincide");
Definition of the Element class.
virtual std::vector< double > const & getIntPtSolidDensity(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 & getIntPtLoading(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 & getIntPtReactionDampingFactor(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
virtual bool checkBounds(std::vector< double > const &local_x, std::vector< double > const &local_x_prev_ts)=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
~TESLocalAssemblerInterface() override=default
virtual std::vector< double > const & getIntPtReactionRate(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
MeshLib::Element const & _element
std::vector< double > const & getIntPtReactionDampingFactor(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const override
ShapeMatrixPolicyType< ShapeFunction, GlobalDim > ShapeMatricesType
std::vector< double > const & getIntPtSolidDensity(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const override
ShapeFunction_ ShapeFunction
typename LAT::LocalMatrix NodalMatrixType
typename LAT::LocalVector NodalVectorType
TESLocalAssembler(MeshLib::Element const &e, std::size_t const local_matrix_size, NumLib::GenericIntegrationMethod const &integration_method, bool const is_axially_symmetric, AssemblyParams const &asm_params)
std::vector< ShapeMatrices, Eigen::aligned_allocator< ShapeMatrices > > _shape_matrices
Eigen::Map< const Eigen::RowVectorXd > getShapeMatrix(const unsigned integration_point) const override
Provides the shape matrix at the given integration point.
TESLocalAssemblerInner< LAT > _d
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 override
std::vector< double > const & getIntPtLoading(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const override
std::vector< double > const & getIntPtReactionRate(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const override
void assemble(double const t, double const dt, std::vector< double > const &local_x, std::vector< double > const &local_x_prev, std::vector< double > &local_M_data, std::vector< double > &local_K_data, std::vector< double > &local_b_data) override
bool checkBounds(std::vector< double > const &local_x, std::vector< double > const &local_x_prev_ts) override
typename ShapeMatricesType::ShapeMatrices ShapeMatrices
NumLib::ShapeMatrices< NodalRowVectorType, DimNodalMatrixType, DimMatrixType, GlobalDimNodalMatrixType > ShapeMatrices
Vector< NNodes *NodalDOF > LocalVector
Matrix< NNodes *NodalDOF, NNodes *NodalDOF > LocalMatrix