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> const& getIntPtSigmaIce(
31 const double t,
32 std::vector<GlobalVector*> const& x,
33 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
34 std::vector<double>& cache) const = 0;
35
36 virtual std::vector<double> getEpsilon0() const = 0;
37
38 virtual std::vector<double> const& getIntPtEpsilon0(
39 const double t,
40 std::vector<GlobalVector*> const& x,
41 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
42 std::vector<double>& cache) const = 0;
43
44 virtual std::vector<double> getEpsilonM() const = 0;
45
46 virtual std::vector<double> const& getIntPtEpsilonM(
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> getEpsilon() const = 0;
53
54 virtual std::vector<double> const& getIntPtEpsilon(
55 const double t,
56 std::vector<GlobalVector*> const& x,
57 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
58 std::vector<double>& cache) const = 0;
59
60 virtual std::vector<double> const& getIntPtIceVolume(
61 const double t,
62 std::vector<GlobalVector*> const& x,
63 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
64 std::vector<double>& cache) const = 0;
65
66 virtual std::vector<double> const& getIntPtDarcyVelocity(
67 const double t,
68 std::vector<GlobalVector*> const& x,
69 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
70 std::vector<double>& cache) const = 0;
71
72 virtual std::vector<double> const& getIntPtFluidDensity(
73 const double t,
74 std::vector<GlobalVector*> const& x,
75 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
76 std::vector<double>& cache) const = 0;
77
78 virtual std::vector<double> const& getIntPtViscosity(
79 const double t,
80 std::vector<GlobalVector*> const& x,
81 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
82 std::vector<double>& cache) const = 0;
83
84 virtual std::vector<double> getMaterialStateVariableInternalState(
85 std::function<std::span<double>(
87 MaterialStateVariables&)> const& get_values_span,
88 int const& n_components) const = 0;
89
90 // TODO move to NumLib::ExtrapolatableElement
91 virtual unsigned getNumberOfIntegrationPoints() const = 0;
92
93 virtual int getMaterialID() const = 0;
94
96 DisplacementDim>::MaterialStateVariables const&
97 getMaterialStateVariablesAt(unsigned /*integration_point*/) const = 0;
98};
99
100} // namespace ThermoHydroMechanics
101} // 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