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> getEpsilonM() const = 0;
44
45 virtual std::vector<double> const& getIntPtEpsilonM(
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> getEpsilon() const = 0;
52
53 virtual std::vector<double> const& getIntPtEpsilon(
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& getIntPtIceVolume(
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> const& getIntPtDarcyVelocity(
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& getIntPtFluidDensity(
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 virtual std::vector<double> const& getIntPtViscosity(
78 const double t,
79 std::vector<GlobalVector*> const& x,
80 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
81 std::vector<double>& cache) const = 0;
82
83 virtual std::vector<double> getMaterialStateVariableInternalState(
84 std::function<std::span<double>(
86 MaterialStateVariables&)> const& get_values_span,
87 int const& n_components) const = 0;
88
89 // TODO move to NumLib::ExtrapolatableElement
90 virtual unsigned getNumberOfIntegrationPoints() const = 0;
91
92 virtual int getMaterialID() const = 0;
93
95 DisplacementDim>::MaterialStateVariables const&
96 getMaterialStateVariablesAt(unsigned /*integration_point*/) const = 0;
97};
98
99} // namespace ThermoHydroMechanics
100} // 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 > 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 > 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