Skip to content
Snippets Groups Projects
Forked from ogs / ogs
1158 commits behind the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
ConstitutiveData.h 2.59 KiB
/**
 * \file
 * \copyright
 * Copyright (c) 2012-2024, 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 "Density.h"
#include "LiquidDensity.h"
#include "ProcessLib/ConstitutiveRelations/Base.h"
#include "ProcessLib/ThermoRichardsMechanics/ConstitutiveCommon/Biot.h"
#include "ProcessLib/ThermoRichardsMechanics/ConstitutiveCommon/LiquidViscosity.h"
#include "ProcessLib/ThermoRichardsMechanics/ConstitutiveCommon/PermeabilityData.h"
#include "ProcessLib/ThermoRichardsMechanics/ConstitutiveCommon/Porosity.h"
#include "ProcessLib/ThermoRichardsMechanics/ConstitutiveCommon/Saturation.h"
#include "ProcessLib/ThermoRichardsMechanics/ConstitutiveCommon/SolidCompressibilityData.h"
#include "ProcessLib/ThermoRichardsMechanics/ConstitutiveStress_StrainTemperature/SolidMechanics.h"
#include "SaturationSecantDerivative.h"
#include "StiffnessTensor.h"

namespace ProcessLib::RichardsMechanics
{
/// Data whose state must be tracked by the TRM process.
template <int DisplacementDim>
using StatefulData = std::tuple<
    StrainData<DisplacementDim>,
    ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::
        EffectiveStressData<DisplacementDim>>;

template <int DisplacementDim>
using StatefulDataPrev = ProcessLib::ConstitutiveRelations::PrevStateOf<
    StatefulData<DisplacementDim>>;

/// Data that is needed for output purposes, but not directly for the assembly.
template <int DisplacementDim>
using OutputData = std::tuple<>;

/// Data that is needed for the equation system assembly.
template <int DisplacementDim>
using ConstitutiveData = std::tuple<
    // TODO (CL) check if all that data should stay here
    StiffnessTensor<DisplacementDim>,
    ProcessLib::ThermoRichardsMechanics::PorosityData, Density, LiquidDensity,
    ProcessLib::ThermoRichardsMechanics::BiotData,
    ProcessLib::ThermoRichardsMechanics::SaturationDataDeriv,
    ProcessLib::ThermoRichardsMechanics::LiquidViscosityData,
    ProcessLib::ThermoRichardsMechanics::SolidCompressibilityData,
    ProcessLib::ThermoRichardsMechanics::BishopsData,
    PrevState<ProcessLib::ThermoRichardsMechanics::BishopsData>,
    ProcessLib::ThermoRichardsMechanics::PermeabilityData<DisplacementDim>,
    SaturationSecantDerivative>;

/// Data that stores intermediate values, which are not needed outside the
/// constitutive setting.
template <int DisplacementDim>
using ConstitutiveTempData = std::tuple<>;
}  // namespace ProcessLib::RichardsMechanics