From cedc8d1d1e1648f122a431e69d88ebbe80a65df3 Mon Sep 17 00:00:00 2001
From: Christoph Lehmann <christoph.lehmann@ufz.de>
Date: Tue, 5 Jul 2022 13:24:30 +0200
Subject: [PATCH] [PL] Added constitutive model/data: EqT

---
 .../Constitutive/EqT.cpp                      | 30 ++++++++++++++++
 .../Constitutive/EqT.h                        | 35 +++++++++++++++++++
 2 files changed, 65 insertions(+)
 create mode 100644 ProcessLib/ThermoRichardsMechanics/Constitutive/EqT.cpp
 create mode 100644 ProcessLib/ThermoRichardsMechanics/Constitutive/EqT.h

diff --git a/ProcessLib/ThermoRichardsMechanics/Constitutive/EqT.cpp b/ProcessLib/ThermoRichardsMechanics/Constitutive/EqT.cpp
new file mode 100644
index 00000000000..0e780f83329
--- /dev/null
+++ b/ProcessLib/ThermoRichardsMechanics/Constitutive/EqT.cpp
@@ -0,0 +1,30 @@
+/**
+ * \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
+ *
+ */
+
+#include "EqT.h"
+
+namespace ProcessLib::ThermoRichardsMechanics
+{
+template <int DisplacementDim>
+void EqTModel<DisplacementDim>::eval(
+    TRMHeatStorageAndFluxData<DisplacementDim> const& heat_data,
+    TRMVaporDiffusionData<DisplacementDim> const& vap_data,
+    EqTData<DisplacementDim>& out) const
+{
+    out.M_TT_X_NTN = heat_data.M_TT_X_NTN + vap_data.M_TT_X_NTN;
+
+    out.K_TT_NT_V_dN =
+        heat_data.advective_heat_flux_contribution_to_K_liquid +
+        vap_data.vapor_velocity * vap_data.volumetric_heat_capacity_vapor;
+}
+
+template struct EqTModel<2>;
+template struct EqTModel<3>;
+}  // namespace ProcessLib::ThermoRichardsMechanics
diff --git a/ProcessLib/ThermoRichardsMechanics/Constitutive/EqT.h b/ProcessLib/ThermoRichardsMechanics/Constitutive/EqT.h
new file mode 100644
index 00000000000..3eec5119c30
--- /dev/null
+++ b/ProcessLib/ThermoRichardsMechanics/Constitutive/EqT.h
@@ -0,0 +1,35 @@
+/**
+ * \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 "TRMHeatStorageAndFlux.h"
+#include "TRMVaporDiffusion.h"
+
+namespace ProcessLib::ThermoRichardsMechanics
+{
+template <int DisplacementDim>
+struct EqTData
+{
+    GlobalDimVector<DisplacementDim> K_TT_NT_V_dN = DVnan<DisplacementDim>();
+    double M_TT_X_NTN = nan;
+};
+
+template <int DisplacementDim>
+struct EqTModel
+{
+    void eval(TRMHeatStorageAndFluxData<DisplacementDim> const& heat_data,
+              TRMVaporDiffusionData<DisplacementDim> const& vap_data,
+              EqTData<DisplacementDim>& out) const;
+};
+
+extern template struct EqTModel<2>;
+extern template struct EqTModel<3>;
+}  // namespace ProcessLib::ThermoRichardsMechanics
-- 
GitLab