OGS
LocalAssemblerInterface.h
Go to the documentation of this file.
1
11#pragma once
12
13#include <vector>
14
17
18namespace ProcessLib
19{
20namespace PhaseField
21{
25{
26 virtual std::size_t setIPDataInitialConditions(
27 std::string_view const name, double const* values,
28 int const integration_order) = 0;
29
30 virtual std::vector<double> getSigma() const = 0;
31
32 virtual std::vector<double> getEpsilon() const = 0;
33
34 virtual std::vector<double> const& getIntPtSigma(
35 const double t,
36 std::vector<GlobalVector*> const& x,
37 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
38 std::vector<double>& cache) const = 0;
39
40 virtual std::vector<double> const& getIntPtSigmaTensile(
41 const double t,
42 std::vector<GlobalVector*> const& x,
43 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
44 std::vector<double>& cache) const = 0;
45
46 virtual std::vector<double> const& getIntPtSigmaCompressive(
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
52 virtual std::vector<double> const& getIntPtEpsilon(
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& getIntPtEpsilonTensile(
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
65 std::size_t mesh_item_id,
66 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_tables,
67 std::vector<GlobalVector*> const& x, double const t,
68 double& crack_volume) = 0;
69
70 virtual void computeEnergy(
71 std::size_t mesh_item_id,
72 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_tables,
73 std::vector<GlobalVector*> const& x, double const t,
74 double& elastic_energy, double& surface_energy,
75 double& pressure_work) = 0;
76};
77
78} // namespace PhaseField
79} // namespace ProcessLib
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 & 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 & 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 > getSigma() 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< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, std::vector< GlobalVector * > const &x, double const t, double &crack_volume)=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 void computeEnergy(std::size_t mesh_item_id, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, std::vector< GlobalVector * > const &x, double const t, double &elastic_energy, double &surface_energy, double &pressure_work)=0
virtual std::size_t setIPDataInitialConditions(std::string_view const name, double const *values, int const integration_order)=0
virtual std::vector< double > getEpsilon() const =0