OGS
LocalAssemblerInterface.h
Go to the documentation of this file.
1
11#pragma once
12
13#include <memory>
14#include <vector>
15
19
20namespace ProcessLib
21{
22namespace SmallDeformationNonlocal
23{
24template <int DisplacementDim>
28{
29 virtual std::size_t setIPDataInitialConditions(
30 std::string_view const name, double const* values,
31 int const integration_order) = 0;
32
34 std::string const& name, std::vector<double> const& value) = 0;
35
37 std::size_t mesh_item_id,
38 NumLib::LocalToGlobalIndexMap const& dof_table, GlobalVector const& x,
39 double& crack_volume) = 0;
40
41 virtual std::vector<double> const& getIntPtEpsPV(
42 const double t,
43 std::vector<GlobalVector*> const& x,
44 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
45 std::vector<double>& cache) const = 0;
46 virtual std::vector<double> const& getIntPtEpsPDXX(
47 const double t,
48 std::vector<GlobalVector*> const& x,
49 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
50 std::vector<double>& cache) const = 0;
51 virtual std::vector<double> getKappaD() const = 0;
52 virtual std::vector<double> const& getIntPtDamage(
53 const double t,
54 std::vector<GlobalVector*> const& x,
55 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
56 std::vector<double>& cache) const = 0;
57
58 virtual std::vector<double> const& getIntPtFreeEnergyDensity(
59 const double t,
60 std::vector<GlobalVector*> const& x,
61 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
62 std::vector<double>& cache) const = 0;
63
64 virtual std::vector<double> getSigma() const = 0;
65 virtual std::vector<double> const& getIntPtSigma(
66 const double t,
67 std::vector<GlobalVector*> const& x,
68 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
69 std::vector<double>& cache) const = 0;
70
71 virtual std::vector<double> const& getIntPtEpsilon(
72 const double t,
73 std::vector<GlobalVector*> const& x,
74 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
75 std::vector<double>& cache) const = 0;
76
77 // TODO move to NumLib::ExtrapolatableElement
78 virtual unsigned getNumberOfIntegrationPoints() const = 0;
79
81 DisplacementDim>::MaterialStateVariables const&
82 getMaterialStateVariablesAt(int integration_point) const = 0;
83
84 virtual std::vector<double> const& getNodalValues(
85 std::vector<double>& nodal_values) const = 0;
86
87 virtual void nonlocal(
88 std::size_t const mesh_item_id,
89 std::vector<std::unique_ptr<
91 local_assemblers) = 0;
92
94 Eigen::Vector3d const& coords,
95 std::vector<double>& distances) const = 0;
96
98 int const ip) = 0;
99};
100
101} // namespace SmallDeformationNonlocal
102} // namespace ProcessLib
Global vector based on Eigen vector.
Definition EigenVector.h:25
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
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
virtual std::vector< double > const & getIntPtEpsPV(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 & getIntPtDamage(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
virtual std::size_t setIPDataInitialConditions(std::string_view const name, double const *values, int const integration_order)=0
virtual std::vector< double > const & getNodalValues(std::vector< double > &nodal_values) const =0
virtual void getIntegrationPointCoordinates(Eigen::Vector3d const &coords, std::vector< double > &distances) const =0
virtual void computeCrackIntegral(std::size_t mesh_item_id, NumLib::LocalToGlobalIndexMap const &dof_table, GlobalVector const &x, double &crack_volume)=0
virtual IntegrationPointDataNonlocalInterface * getIPDataPtr(int const ip)=0
virtual MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables const & getMaterialStateVariablesAt(int integration_point) const =0
virtual std::vector< double > const & getIntPtEpsPDXX(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 & getIntPtFreeEnergyDensity(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
virtual void nonlocal(std::size_t const mesh_item_id, std::vector< std::unique_ptr< SmallDeformationNonlocalLocalAssemblerInterface > > const &local_assemblers)=0
virtual void setIPDataInitialConditionsFromCellData(std::string const &name, std::vector< double > const &value)=0