OGS
ThermoHydroMechanics/LocalAssemblerInterface.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
9
10namespace ProcessLib
11{
13{
14template <int DisplacementDim>
17{
18 virtual std::size_t setIPDataInitialConditions(
19 std::string_view const name, double const* values,
20 int const integration_order) = 0;
21
22 virtual std::vector<double> getSigma() const = 0;
23
24 virtual std::vector<double> const& getIntPtSigma(
25 const double t,
26 std::vector<GlobalVector*> const& x,
27 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
28 std::vector<double>& cache) const = 0;
29
30 virtual std::vector<double> getSigmaIce() const = 0;
31
32 virtual std::vector<double> const& getIntPtSigmaIce(
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> getEpsilon0() const = 0;
39
40 virtual std::vector<double> const& getIntPtEpsilon0(
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> getEpsilonM() const = 0;
47
48 virtual std::vector<double> const& getIntPtEpsilonM(
49 const double t,
50 std::vector<GlobalVector*> const& x,
51 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
52 std::vector<double>& cache) const = 0;
53
54 virtual std::vector<double> getEpsilon() const = 0;
55
56 virtual std::vector<double> const& getIntPtEpsilon(
57 const double t,
58 std::vector<GlobalVector*> const& x,
59 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
60 std::vector<double>& cache) const = 0;
61
62 virtual std::vector<double> getIceVolumeFraction() const = 0;
63
64 virtual std::vector<double> const& getIntPtIceVolume(
65 const double t,
66 std::vector<GlobalVector*> const& x,
67 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
68 std::vector<double>& cache) const = 0;
69
70 virtual std::vector<double> const& getIntPtDarcyVelocity(
71 const double t,
72 std::vector<GlobalVector*> const& x,
73 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
74 std::vector<double>& cache) const = 0;
75
76 virtual std::vector<double> const& getIntPtFluidDensity(
77 const double t,
78 std::vector<GlobalVector*> const& x,
79 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
80 std::vector<double>& cache) const = 0;
81
82 virtual std::vector<double> const& getIntPtViscosity(
83 const double t,
84 std::vector<GlobalVector*> const& x,
85 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
86 std::vector<double>& cache) const = 0;
87
88 virtual std::vector<double> getMaterialStateVariableInternalState(
89 std::function<std::span<double>(
91 MaterialStateVariables&)> const& get_values_span,
92 int const& n_components) const = 0;
93
94 // TODO move to NumLib::ExtrapolatableElement
95 virtual unsigned getNumberOfIntegrationPoints() const = 0;
96
97 virtual int getMaterialID() const = 0;
98
100 DisplacementDim>::MaterialStateVariables const&
101 getMaterialStateVariablesAt(unsigned /*integration_point*/) const = 0;
102};
103
104} // namespace ThermoHydroMechanics
105} // 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 > getIceVolumeFraction() 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 > getSigmaIce() 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