OGS
CreateConstitutiveRelationIce.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 <memory>
7#include <optional>
8#include <vector>
9
10namespace BaseLib
11{
12class ConfigTree;
13}
14
15namespace ParameterLib
16{
17struct ParameterBase;
18struct CoordinateSystem;
19} // namespace ParameterLib
20
21namespace MaterialLib
22{
23namespace Solids
24{
25template <int DisplacementDim>
26struct MechanicsBase;
27
28template <int DisplacementDim>
29std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>>
31 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
32 std::optional<ParameterLib::CoordinateSystem> const&
33 local_coordinate_system,
34 BaseLib::ConfigTree const& config);
35
36extern template std::unique_ptr<MaterialLib::Solids::MechanicsBase<2>>
38 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
39 std::optional<ParameterLib::CoordinateSystem> const&
40 local_coordinate_system,
41 BaseLib::ConfigTree const& config);
42
43extern template std::unique_ptr<MaterialLib::Solids::MechanicsBase<3>>
45 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
46 std::optional<ParameterLib::CoordinateSystem> const&
47 local_coordinate_system,
48 BaseLib::ConfigTree const& config);
49} // namespace Solids
50} // namespace MaterialLib
std::unique_ptr< MaterialLib::Solids::MechanicsBase< DisplacementDim > > createConstitutiveRelationIce(std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, BaseLib::ConfigTree const &config)
A local coordinate system used for tensor transformations.