/** * \file * \copyright * Copyright (c) 2012-2021, 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 "ParameterLib/Parameter.h" namespace MaterialLib { namespace Solids { template struct MechanicsBase; } } namespace ProcessLib { namespace SmallDeformation { template struct SmallDeformationProcessData { MeshLib::PropertyVector const* const material_ids = nullptr; std::map< int, std::unique_ptr>> 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; /// Solid's density. A scalar quantity, ParameterLib::Parameter. ParameterLib::Parameter const& solid_density; /// Specific body forces applied to the solid. /// It is usually used to apply gravitational forces. /// A vector of displacement dimension's length. Eigen::Matrix const specific_body_force; ParameterLib::Parameter const* const reference_temperature; std::array*, 3> principal_stress_vector = { nullptr, nullptr, nullptr}; MeshLib::PropertyVector* principal_stress_values = nullptr; }; } // namespace SmallDeformation } // namespace ProcessLib