OGS
SpecificHeatCapacityWithLatentHeat.h
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2
// SPDX-License-Identifier: BSD-3-Clause
3
4
#pragma once
5
6
#include "
MaterialLib/MPL/Property.h
"
7
8
namespace
MaterialPropertyLib
9
{
30
class
SpecificHeatCapacityWithLatentHeat
final :
public
Property
31
{
32
struct
PhaseProperties
33
{
34
Property
const
*
liquid
=
nullptr
;
35
Property
const
*
frozen
=
nullptr
;
36
Property
const
*
porous
=
nullptr
;
37
};
38
39
public
:
40
SpecificHeatCapacityWithLatentHeat
(std::string
name
,
double
const
l);
41
42
void
checkScale
()
const override
;
43
44
// initialize container with pointers to the phases properties
45
void
setProperties
(
46
std::vector<std::unique_ptr<Phase>>
const
& phases)
override
;
47
48
double
effectiveVolumetricHeatCapacity
(
49
VariableArray
const
& variable_array,
50
ParameterLib::SpatialPosition
const
& pos,
51
double
const
t,
52
double
const
dt)
const
;
53
54
PropertyDataType
value
(
VariableArray
const
& variable_array,
55
ParameterLib::SpatialPosition
const
& pos,
56
double
const
t,
57
double
const
dt)
const override
;
58
59
PropertyDataType
dValue
(
VariableArray
const
& variable_array,
60
Variable
const
variable,
61
ParameterLib::SpatialPosition
const
& pos,
62
double
const
t,
63
double
const
dt)
const override
;
64
65
private
:
66
double
const
l_
;
//< specific latent heat of melting
67
69
PhaseProperties
densities_
;
71
PhaseProperties
spec_heat_capacities_
;
72
};
73
}
// namespace MaterialPropertyLib
Property.h
MaterialPropertyLib::Property
Definition
MaterialLib/MPL/Property.h:44
MaterialPropertyLib::Property::value
virtual PropertyDataType value() const
Definition
MaterialLib/MPL/Property.cpp:67
MaterialPropertyLib::SpecificHeatCapacityWithLatentHeat::setProperties
void setProperties(std::vector< std::unique_ptr< Phase > > const &phases) override
Default implementation:
Definition
SpecificHeatCapacityWithLatentHeat.cpp:27
MaterialPropertyLib::SpecificHeatCapacityWithLatentHeat::spec_heat_capacities_
PhaseProperties spec_heat_capacities_
Pointers to the properties in each phase.
Definition
SpecificHeatCapacityWithLatentHeat.h:71
MaterialPropertyLib::SpecificHeatCapacityWithLatentHeat::densities_
PhaseProperties densities_
Pointers to the properties in each phase.
Definition
SpecificHeatCapacityWithLatentHeat.h:69
MaterialPropertyLib::SpecificHeatCapacityWithLatentHeat::l_
double const l_
Definition
SpecificHeatCapacityWithLatentHeat.h:66
MaterialPropertyLib::SpecificHeatCapacityWithLatentHeat::checkScale
void checkScale() const override
Definition
SpecificHeatCapacityWithLatentHeat.cpp:17
MaterialPropertyLib::SpecificHeatCapacityWithLatentHeat::dValue
PropertyDataType dValue(VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
Definition
SpecificHeatCapacityWithLatentHeat.cpp:126
MaterialPropertyLib::SpecificHeatCapacityWithLatentHeat::SpecificHeatCapacityWithLatentHeat
SpecificHeatCapacityWithLatentHeat(std::string name, double const l)
Definition
SpecificHeatCapacityWithLatentHeat.cpp:10
MaterialPropertyLib::SpecificHeatCapacityWithLatentHeat::effectiveVolumetricHeatCapacity
double effectiveVolumetricHeatCapacity(VariableArray const &variable_array, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const
Definition
SpecificHeatCapacityWithLatentHeat.cpp:64
MaterialPropertyLib::VariableArray
Definition
VariableType.h:94
ParameterLib::SpatialPosition
Definition
SpatialPosition.h:21
MaterialPropertyLib
Definition
ChemicalSolverInterface.h:98
MaterialPropertyLib::Variable
Variable
Definition
VariableType.h:21
MaterialPropertyLib::name
@ name
Definition
PropertyType.h:57
MaterialPropertyLib::PropertyDataType
std::variant< double, Eigen::Matrix< double, 2, 1 >, Eigen::Matrix< double, 3, 1 >, Eigen::Matrix< double, 2, 2 >, Eigen::Matrix< double, 3, 3 >, Eigen::Matrix< double, 4, 1 >, Eigen::Matrix< double, 6, 1 >, Eigen::MatrixXd > PropertyDataType
Definition
MaterialLib/MPL/Property.h:24
MaterialPropertyLib::SpecificHeatCapacityWithLatentHeat::PhaseProperties
Definition
SpecificHeatCapacityWithLatentHeat.h:33
MaterialPropertyLib::SpecificHeatCapacityWithLatentHeat::PhaseProperties::frozen
Property const * frozen
Definition
SpecificHeatCapacityWithLatentHeat.h:35
MaterialPropertyLib::SpecificHeatCapacityWithLatentHeat::PhaseProperties::liquid
Property const * liquid
Definition
SpecificHeatCapacityWithLatentHeat.h:34
MaterialPropertyLib::SpecificHeatCapacityWithLatentHeat::PhaseProperties::porous
Property const * porous
Definition
SpecificHeatCapacityWithLatentHeat.h:36
MaterialLib
MPL
Properties
SpecificHeatCapacityWithLatentHeat.h
Generated by
1.14.0