OGS
LocalAssemblerInterface.h
Go to the documentation of this file.
1
11#pragma once
12
16
17namespace ProcessLib
18{
19namespace ThermoHydroMechanics
20{
21template <int DisplacementDim>
24{
25 virtual std::size_t setIPDataInitialConditions(
26 std::string_view const name, double const* values,
27 int const integration_order) = 0;
28
29 virtual std::vector<double> getSigma() const = 0;
30
31 virtual std::vector<double> const& getIntPtSigma(
32 const double t,
33 std::vector<GlobalVector*> const& x,
34 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
35 std::vector<double>& cache) const = 0;
36
37 virtual std::vector<double> const& getIntPtSigmaIce(
38 const double t,
39 std::vector<GlobalVector*> const& x,
40 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
41 std::vector<double>& cache) const = 0;
42
43 virtual std::vector<double> getEpsilon0() const = 0;
44
45 virtual std::vector<double> const& getIntPtEpsilon0(
46 const double t,
47 std::vector<GlobalVector*> const& x,
48 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
49 std::vector<double>& cache) const = 0;
50
51 virtual std::vector<double> getEpsilonM() const = 0;
52
53 virtual std::vector<double> const& getIntPtEpsilonM(
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> getEpsilon() const = 0;
60
61 virtual std::vector<double> const& getIntPtEpsilon(
62 const double t,
63 std::vector<GlobalVector*> const& x,
64 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
65 std::vector<double>& cache) const = 0;
66
67 virtual std::vector<double> const& getIntPtIceVolume(
68 const double t,
69 std::vector<GlobalVector*> const& x,
70 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
71 std::vector<double>& cache) const = 0;
72
73 virtual std::vector<double> const& getIntPtDarcyVelocity(
74 const double t,
75 std::vector<GlobalVector*> const& x,
76 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
77 std::vector<double>& cache) const = 0;
78
79 virtual std::vector<double> const& getIntPtFluidDensity(
80 const double t,
81 std::vector<GlobalVector*> const& x,
82 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
83 std::vector<double>& cache) const = 0;
84
85 virtual std::vector<double> const& getIntPtViscosity(
86 const double t,
87 std::vector<GlobalVector*> const& x,
88 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
89 std::vector<double>& cache) const = 0;
90
91 virtual std::vector<double> getMaterialStateVariableInternalState(
92 std::function<std::span<double>(
94 MaterialStateVariables&)> const& get_values_span,
95 int const& n_components) const = 0;
96
97 // TODO move to NumLib::ExtrapolatableElement
98 virtual unsigned getNumberOfIntegrationPoints() const = 0;
99
100 virtual int getMaterialID() const = 0;
101
102 virtual typename MaterialLib::Solids::MechanicsBase<
103 DisplacementDim>::MaterialStateVariables const&
104 getMaterialStateVariablesAt(unsigned /*integration_point*/) const = 0;
105};
106
107} // namespace ThermoHydroMechanics
108} // namespace ProcessLib
virtual std::vector< double > const & getIntPtFluidDensity(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::size_t setIPDataInitialConditions(std::string_view const name, double const *values, int const integration_order)=0
virtual std::vector< double > const & getIntPtEpsilon0(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 > getEpsilon() const =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
virtual std::vector< double > getEpsilon0() const =0
virtual std::vector< double > getEpsilonM() const =0
virtual std::vector< double > const & getIntPtSigmaIce(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 & getIntPtIceVolume(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
virtual MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables const & getMaterialStateVariablesAt(unsigned) const =0
virtual std::vector< double > const & getIntPtViscosity(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 & getIntPtEpsilonM(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 > getMaterialStateVariableInternalState(std::function< std::span< double >(typename MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables &)> const &get_values_span, int const &n_components) const =0