OGS
LocalAssemblerInterface.h
Go to the documentation of this file.
1 
11 #pragma once
12 
13 #include <vector>
14 
17 
18 namespace ProcessLib
19 {
20 namespace PhaseField
21 {
25 {
26  virtual std::vector<double> const& getIntPtSigma(
27  const double t,
28  std::vector<GlobalVector*> const& x,
29  std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
30  std::vector<double>& cache) const = 0;
31 
32  virtual std::vector<double> const& getIntPtSigmaTensile(
33  const double t,
34  std::vector<GlobalVector*> const& x,
35  std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
36  std::vector<double>& cache) const = 0;
37 
38  virtual std::vector<double> const& getIntPtSigmaCompressive(
39  const double t,
40  std::vector<GlobalVector*> const& x,
41  std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
42  std::vector<double>& cache) const = 0;
43 
44  virtual std::vector<double> const& getIntPtEpsilon(
45  const double t,
46  std::vector<GlobalVector*> const& x,
47  std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
48  std::vector<double>& cache) const = 0;
49 
50  virtual std::vector<double> const& getIntPtEpsilonTensile(
51  const double t,
52  std::vector<GlobalVector*> const& x,
53  std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
54  std::vector<double>& cache) const = 0;
55 
56  virtual void computeCrackIntegral(
57  std::size_t mesh_item_id,
58  std::vector<
59  std::reference_wrapper<NumLib::LocalToGlobalIndexMap>> const&
60  dof_tables,
61  GlobalVector const& x, double const t, double& crack_volume,
62  CoupledSolutionsForStaggeredScheme const* const cpl_xs) = 0;
63 
64  virtual void computeEnergy(
65  std::size_t mesh_item_id,
66  std::vector<
67  std::reference_wrapper<NumLib::LocalToGlobalIndexMap>> const&
68  dof_tables,
69  GlobalVector const& x, double const t, double& elastic_energy,
70  double& surface_energy, double& pressure_work,
71  CoupledSolutionsForStaggeredScheme const* const cpl_xs) = 0;
72 };
73 
74 } // namespace PhaseField
75 } // namespace ProcessLib
Global vector based on Eigen vector.
Definition: EigenVector.h:25
static const double t
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 & getIntPtEpsilonTensile(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 & getIntPtSigmaCompressive(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 & getIntPtSigmaTensile(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 void computeCrackIntegral(std::size_t mesh_item_id, std::vector< std::reference_wrapper< NumLib::LocalToGlobalIndexMap >> const &dof_tables, GlobalVector const &x, double const t, double &crack_volume, CoupledSolutionsForStaggeredScheme const *const cpl_xs)=0
virtual void computeEnergy(std::size_t mesh_item_id, std::vector< std::reference_wrapper< NumLib::LocalToGlobalIndexMap >> const &dof_tables, GlobalVector const &x, double const t, double &elastic_energy, double &surface_energy, double &pressure_work, CoupledSolutionsForStaggeredScheme const *const cpl_xs)=0