OGS
SmallDeformation/ConstitutiveRelations/SolidMechanics.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 "Base.h"
7#include "FreeEnergyDensity.h"
9#include "MaterialState.h"
12
14{
16{
17template <int DisplacementDim>
19{
21 KV::KMnan<DisplacementDim>();
22};
23
24template <int DisplacementDim>
27
28template <int DisplacementDim>
30{
33 : solid_material_(solid_material)
34 {
35 }
36
37 void eval(SpaceTimeData const& x_t,
38 Temperature const& temperature,
39 StrainData<DisplacementDim> const& eps_data,
40 PrevState<StrainData<DisplacementDim>> const& eps_data_prev,
42 PrevState<StressData<DisplacementDim>> const& stress_data_prev,
43 StressData<DisplacementDim>& stress_data,
45 FreeEnergyDensityData& free_energy_density_data) const;
46
48 {
49 return solid_material_.getInternalVariables();
50 }
51
54 {
55 return SolidMechanicsModel{solid_material};
56 }
57
58private:
60};
61
62extern template struct SolidMechanicsModel<2>;
63extern template struct SolidMechanicsModel<3>;
64} // namespace ConstitutiveRelations
65} // namespace ProcessLib::SmallDeformation
KV::KelvinMatrixType< DisplacementDim > KelvinMatrix
BaseLib::StrongType< double, struct TemperatureTag > Temperature
static SolidMechanicsModel create(SolidConstitutiveRelation< DisplacementDim > const &solid_material)
void eval(SpaceTimeData const &x_t, Temperature const &temperature, StrainData< DisplacementDim > const &eps_data, PrevState< StrainData< DisplacementDim > > const &eps_data_prev, MaterialStateData< DisplacementDim > &mat_state, PrevState< StressData< DisplacementDim > > const &stress_data_prev, StressData< DisplacementDim > &stress_data, SolidMechanicsDataStateless< DisplacementDim > &current_stateless, FreeEnergyDensityData &free_energy_density_data) const