OGS
ThermoMechanics/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
6#include <vector>
7
11
12namespace ProcessLib
13{
14namespace ThermoMechanics
15{
16template <int DisplacementDim>
20{
21 virtual std::size_t setIPDataInitialConditions(
22 std::string_view const name, double const* values,
23 int const integration_order) = 0;
24
25 virtual std::vector<double> getSigma() const = 0;
26
27 virtual std::vector<double> getEpsilon() const = 0;
28
29 virtual std::vector<double> getEpsilonMechanical() 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& getIntPtEpsilon(
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> const& getIntPtEpsilonMechanical(
44 const double t,
45 std::vector<GlobalVector*> const& x,
46 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
47 std::vector<double>& cache) const = 0;
48
49 // TODO move to NumLib::ExtrapolatableElement
50 virtual unsigned getNumberOfIntegrationPoints() const = 0;
51
52 virtual int getMaterialID() const = 0;
53
55 DisplacementDim>::MaterialStateVariables const&
56 getMaterialStateVariablesAt(unsigned /*integration_point*/) const = 0;
57};
58
59} // namespace ThermoMechanics
60} // namespace ProcessLib
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 > getEpsilonMechanical() 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::size_t setIPDataInitialConditions(std::string_view const name, double const *values, int const integration_order)=0
virtual MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables const & getMaterialStateVariablesAt(unsigned) const =0
virtual std::vector< double > const & getIntPtEpsilonMechanical(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0