/** * \file * \copyright * Copyright (c) 2012-2022, OpenGeoSys Community (http://www.opengeosys.org) * Distributed under a Modified BSD License. * See accompanying file LICENSE.txt or * http://www.opengeosys.org/project/license * */ #pragma once #include #include #include #include "MaterialLib/MPL/MaterialSpatialDistributionMap.h" #include "ParameterLib/Parameter.h" namespace MaterialLib { namespace Solids { template struct MechanicsBase; } } // namespace MaterialLib namespace ProcessLib { namespace ThermoHydroMechanics { template struct ThermoHydroMechanicsProcessData { MeshLib::PropertyVector const* const material_ids = nullptr; std::unique_ptr media_map = nullptr; /// The constitutive relation for the mechanical part. /// \note Linear elasticity is the only supported one in the moment. std::map>> solid_materials; /// Optional, initial stress field. A symmetric tensor, short vector /// representation of length 4 or 6, ParameterLib::Parameter. ParameterLib::Parameter const* const initial_stress; /// Specific body forces applied to solid and fluid. /// It is usually used to apply gravitational forces. /// A vector of displacement dimension's length. Eigen::Matrix const specific_body_force; MeshLib::PropertyVector* pressure_interpolated = nullptr; MeshLib::PropertyVector* temperature_interpolated = nullptr; EIGEN_MAKE_ALIGNED_OPERATOR_NEW; }; } // namespace ThermoHydroMechanics } // namespace ProcessLib