OGS
LargeDeformation/ConstitutiveRelations/ConstitutiveSetting.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 "ConstitutiveData.h"
8#include "MaterialState.h"
9
11{
13{
14template <int DisplacementDim>
16{
17 using GradientVectorType = Eigen::Matrix<
18 double,
19 DisplacementDim * DisplacementDim + (DisplacementDim == 2 ? 1 : 0), 1>;
20
22 void init();
23
25 void eval(ConstitutiveModels<DisplacementDim>& models, double const t,
26 double const dt, ParameterLib::SpatialPosition const& x_position,
27 MaterialPropertyLib::Medium const& medium, double const T_ref,
29 deformation_gradient_data,
30 GradientVectorType const& deformation_gradient_prev,
32 StatefulDataPrev<DisplacementDim> const& prev_state,
36};
37
38extern template struct ConstitutiveSetting<2>;
39extern template struct ConstitutiveSetting<3>;
40} // namespace ConstitutiveRelations
41} // namespace ProcessLib::LargeDeformation
std::tuple< SolidMechanicsDataStateless< DisplacementDim >, VolumetricBodyForce< DisplacementDim > > ConstitutiveData
Data that is needed for the equation system assembly.
std::tuple< SolidMechanicsModel< DisplacementDim >, SolidDensityModel, GravityModel< DisplacementDim > > ConstitutiveModels
Constitutive models used for assembly.
ProcessLib::ConstitutiveRelations::PrevStateOf< StatefulData< DisplacementDim > > StatefulDataPrev
std::tuple< PrevState< DeformationGradientData< DisplacementDim > >, SolidDensity > ConstitutiveTempData
std::tuple< StressData< DisplacementDim > > StatefulData
Data whose state must be tracked by the process.
void eval(ConstitutiveModels< DisplacementDim > &models, double const t, double const dt, ParameterLib::SpatialPosition const &x_position, MaterialPropertyLib::Medium const &medium, double const T_ref, DeformationGradientData< DisplacementDim > const &deformation_gradient_data, GradientVectorType const &deformation_gradient_prev, StatefulData< DisplacementDim > &state, StatefulDataPrev< DisplacementDim > const &prev_state, MaterialStateData< DisplacementDim > &mat_state, ConstitutiveTempData< DisplacementDim > &tmp, ConstitutiveData< DisplacementDim > &cd) const
Evaluate the constitutive setting.
Eigen::Matrix< double, DisplacementDim *DisplacementDim+(DisplacementDim==2 ? 1 :0), 1 > GradientVectorType