OGS
LocalAssemblerInterface.h
Go to the documentation of this file.
1
11#pragma once
12
16
17namespace ProcessLib
18{
19namespace RichardsMechanics
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> getSwellingStress() const = 0;
38
39 virtual std::vector<double> const& getIntPtSwellingStress(
40 const double t,
41 std::vector<GlobalVector*> const& x,
42 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
43 std::vector<double>& cache) const = 0;
44
45 virtual std::vector<double> getEpsilon() const = 0;
46
47 virtual std::vector<double> const& getIntPtEpsilon(
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
53 virtual std::vector<double> const& getIntPtDarcyVelocity(
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> getSaturation() const = 0;
60
61 virtual std::vector<double> const& getIntPtSaturation(
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> getMicroSaturation() const = 0;
68
69 virtual std::vector<double> const& getIntPtMicroSaturation(
70 const double t,
71 std::vector<GlobalVector*> const& x,
72 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
73 std::vector<double>& cache) const = 0;
74
75 virtual std::vector<double> getMicroPressure() const = 0;
76
77 virtual std::vector<double> const& getIntPtMicroPressure(
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> getPorosity() const = 0;
84
85 virtual std::vector<double> const& getIntPtPorosity(
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> getTransportPorosity() const = 0;
92
93 virtual std::vector<double> const& getIntPtTransportPorosity(
94 const double t,
95 std::vector<GlobalVector*> const& x,
96 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
97 std::vector<double>& cache) const = 0;
98
99 virtual std::vector<double> const& getIntPtDryDensitySolid(
100 const double t,
101 std::vector<GlobalVector*> const& x,
102 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
103 std::vector<double>& cache) const = 0;
104
105 virtual std::vector<double> getMaterialStateVariableInternalState(
106 std::function<std::span<double>(
108 MaterialStateVariables&)> const& get_values_span,
109 int const& n_components) const = 0;
110
111 // TODO move to NumLib::ExtrapolatableElement
112 virtual unsigned getNumberOfIntegrationPoints() const = 0;
113
114 virtual int getMaterialID() const = 0;
115
116 virtual typename MaterialLib::Solids::MechanicsBase<
117 DisplacementDim>::MaterialStateVariables const&
118 getMaterialStateVariablesAt(unsigned /*integration_point*/) const = 0;
119};
120
121} // namespace RichardsMechanics
122} // namespace ProcessLib
virtual unsigned getNumberOfIntegrationPoints() const =0
virtual std::vector< double > const & getIntPtSaturation(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 > getSaturation() 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 > 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 > getMicroSaturation() const =0
virtual MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables const & getMaterialStateVariablesAt(unsigned) const =0
virtual std::vector< double > const & getIntPtDryDensitySolid(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 & getIntPtSwellingStress(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 > getSwellingStress() const =0
virtual std::vector< double > getPorosity() const =0
virtual std::vector< double > getEpsilon() 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 & getIntPtTransportPorosity(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 & getIntPtPorosity(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 > getMicroPressure() const =0
virtual std::vector< double > getSigma() const =0
virtual std::vector< double > const & getIntPtMicroSaturation(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 > getMaterialStateVariableInternalState(std::function< std::span< double >(typename MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables &)> const &get_values_span, int const &n_components) const =0
virtual std::vector< double > getTransportPorosity() const =0
virtual std::vector< double > const & getIntPtMicroPressure(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0