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