diff --git a/MaterialLib/MPL/VariableType.h b/MaterialLib/MPL/VariableType.h index 5bf2cf5e812673b039b8e783994fb58f11209536..790e8667a3006bea22f57a7375b96d6646baaf31 100644 --- a/MaterialLib/MPL/VariableType.h +++ b/MaterialLib/MPL/VariableType.h @@ -95,6 +95,16 @@ using VariableType = std::variant<std::monostate, class VariableArray { public: + using Scalar = double; + using KelvinVector = std::variant<std::monostate, + Eigen::Matrix<double, 4, 1>, + Eigen::Matrix<double, 6, 1>>; + // Compare to GMatrixPolicy::GradientVectorType. The 1d case = Matrix<3, 1> + // is not used so far. + using DeformationGradient = std::variant<std::monostate, + Eigen::Matrix<double, 5, 1>, + Eigen::Matrix<double, 9, 1>>; + /// Read-only access. /// \note The returned value is a temporary. VariableType operator[](Variable const variable) const @@ -162,12 +172,7 @@ public: double capillary_pressure = nan_; double concentration = nan_; - // Compare to GMatrixPolicy::GradientVectorType. The 1d case = Matrix<3, 1> - // is not used so far. - std::variant<std::monostate, - Eigen::Matrix<double, 5, 1>, - Eigen::Matrix<double, 9, 1>> - deformation_gradient; + DeformationGradient deformation_gradient; double density = nan_; double effective_pore_pressure = nan_; double enthalpy = nan_; @@ -176,29 +181,17 @@ public: double grain_compressibility = nan_; double liquid_phase_pressure = nan_; double liquid_saturation = nan_; - std::variant<std::monostate, - Eigen::Matrix<double, 4, 1>, - Eigen::Matrix<double, 6, 1>> - mechanical_strain; + KelvinVector mechanical_strain; double molar_mass = nan_; double molar_mass_derivative = nan_; double molar_fraction = nan_; double gas_phase_pressure = nan_; double porosity = nan_; double solid_grain_pressure = nan_; - std::variant<std::monostate, - Eigen::Matrix<double, 4, 1>, - Eigen::Matrix<double, 6, 1>> - stress; + KelvinVector stress; double temperature = nan_; - std::variant<std::monostate, - Eigen::Matrix<double, 4, 1>, - Eigen::Matrix<double, 6, 1>> - total_strain; - std::variant<std::monostate, - Eigen::Matrix<double, 4, 1>, - Eigen::Matrix<double, 6, 1>> - total_stress; + KelvinVector total_strain; + KelvinVector total_stress; double transport_porosity = nan_; double vapour_pressure = nan_; double volumetric_strain = nan_;