/** * \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 namespace ProcessLib { namespace ThermoRichardsFlow { template struct IntegrationPointData final { typename ShapeMatricesType::NodalRowVectorType N; typename ShapeMatricesType::GlobalDimNodalMatrixType dNdx; typename ShapeMatricesType::GlobalDimVectorType v_darcy; double saturation = std::numeric_limits::quiet_NaN(); double saturation_prev = std::numeric_limits::quiet_NaN(); double porosity = std::numeric_limits::quiet_NaN(); double porosity_prev = std::numeric_limits::quiet_NaN(); double transport_porosity = std::numeric_limits::quiet_NaN(); double transport_porosity_prev = std::numeric_limits::quiet_NaN(); double dry_density_solid = std::numeric_limits::quiet_NaN(); double dry_density_pellet_saturated = std::numeric_limits::quiet_NaN(); double dry_density_pellet_unsaturated = std::numeric_limits::quiet_NaN(); double integration_weight; void pushBackState() { saturation_prev = saturation; porosity_prev = porosity; transport_porosity_prev = transport_porosity; } EIGEN_MAKE_ALIGNED_OPERATOR_NEW; }; } // namespace ThermoRichardsFlow } // namespace ProcessLib