22 #include "custom_utilities/element_utilities.hpp"
34 template <
unsigned int TDim,
unsigned int TNumNodes>
53 GeometryType::Pointer pGeometry,
54 Properties::Pointer pProperties)
55 :
GeoTCondition<TDim, TNumNodes>(NewId, pGeometry, pProperties)
61 Properties::Pointer pProperties)
const override;
63 void Initialize(
const ProcessInfo& rCurrentProcessInfo)
override;
67 void CalculateLocalSystem(
Matrix& rLeftHandSideMatrix,
68 Vector& rRightHandSideVector,
72 void InitializeProperties();
74 void CalculateAndAddLHS(
Matrix& rLeftHandSideMatrix,
76 double IntegrationCoefficient,
79 void CalculateAndAddRHS(
Vector& rRightHandSideVector,
81 double IntegrationCoefficient,
82 const Vector& rNodalTemperatures,
88 double PreviousStorage,
89 double PreviousRadiation)
const;
90 double CalculateRightHandSideFlux(
double NetRadiation,
91 double SurfaceHeatStorage,
92 double ActualEvaporation)
const;
94 double CalculateCurrentWaterStorage(
double TimeStepSize,
95 double PreviousStorage,
96 double PreviousRadiation)
const;
98 double CalculateCurrentNetRadiation()
const;
99 double CalculateNetRadiation(
unsigned int NodeIndex)
const;
101 double CalculateSurfaceHeatStorage(
double TimeStepSize,
102 double PreviousRadiation,
103 double NetRadiation)
const;
105 WaterFluxes CalculateWaterFluxes(
unsigned int NodeIndex,
107 double PreviousStorage,
109 double SurfaceHeatStorage)
const;
111 double CalculatePotentialEvaporation(
unsigned int NodeIndex,
113 double SurfaceHeatStorage)
const;
115 void CalculateRoughness(
const ProcessInfo& rCurrentProcessInfo);
117 double CalculateSurfaceRoughnessFactor(
double CurrentAirTemperature,
118 double PreviousRoughnessTemperature,
119 double RichardsonBulkModulus,
120 double FrictionDragCoefficient)
const;
125 void save(
Serializer& rSerializer)
const override
128 rSerializer.
save(
"mIsInitialized", mIsInitialized);
129 rSerializer.
save(
"mAlbedoCoefficient", mAlbedoCoefficient);
130 rSerializer.
save(
"mFirstCoverStorageCoefficient", mFirstCoverStorageCoefficient);
131 rSerializer.
save(
"mSecondCoverStorageCoefficient", mSecondCoverStorageCoefficient);
132 rSerializer.
save(
"mThirdCoverStorageCoefficient", mThirdCoverStorageCoefficient);
133 rSerializer.
save(
"mBuildEnvironmentRadiation", mBuildEnvironmentRadiation);
134 rSerializer.
save(
"mMinimalStorage", mMinimalStorage);
135 rSerializer.
save(
"mMaximalStorage", mMaximalStorage);
136 rSerializer.
save(
"mRoughnessTemperature", mRoughnessTemperature);
137 rSerializer.
save(
"mNetRadiation", mNetRadiation);
138 rSerializer.
save(
"mWaterStorage", mWaterStorage);
139 rSerializer.
save(
"mWaterDensity", mWaterDensity);
145 rSerializer.
load(
"mIsInitialized", mIsInitialized);
146 rSerializer.
load(
"mAlbedoCoefficient", mAlbedoCoefficient);
147 rSerializer.
load(
"mFirstCoverStorageCoefficient", mFirstCoverStorageCoefficient);
148 rSerializer.
load(
"mSecondCoverStorageCoefficient", mSecondCoverStorageCoefficient);
149 rSerializer.
load(
"mThirdCoverStorageCoefficient", mThirdCoverStorageCoefficient);
150 rSerializer.
load(
"mBuildEnvironmentRadiation", mBuildEnvironmentRadiation);
151 rSerializer.
load(
"mMinimalStorage", mMinimalStorage);
152 rSerializer.
load(
"mMaximalStorage", mMaximalStorage);
153 rSerializer.
load(
"mRoughnessTemperature", mRoughnessTemperature);
154 rSerializer.
load(
"mNetRadiation", mNetRadiation);
155 rSerializer.
load(
"mWaterStorage", mWaterStorage);
156 rSerializer.
load(
"mWaterDensity", mWaterDensity);
159 bool mIsInitialized =
false;
160 double mAlbedoCoefficient = 0.0;
161 double mFirstCoverStorageCoefficient = 0.0;
162 double mSecondCoverStorageCoefficient = 0.0;
163 double mThirdCoverStorageCoefficient = 0.0;
164 double mBuildEnvironmentRadiation = 0.0;
165 double mMinimalStorage = 0.0;
166 double mMaximalStorage = 0.0;
167 double mRoughnessTemperature = 0.0;
168 double mNetRadiation = 0.0;
169 double mWaterStorage = 0.0;
170 double mWaterDensity = 0.0;
Base class for all Conditions.
Definition: condition.h:59
std::size_t IndexType
Definition: flags.h:74
Definition: T_condition.h:27
Definition: T_microclimate_flux_condition.h:37
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(GeoTMicroClimateFluxCondition)
GeoTMicroClimateFluxCondition(IndexType NewId, GeometryType::Pointer pGeometry)
Definition: T_microclimate_flux_condition.h:47
GeoTMicroClimateFluxCondition()
Definition: T_microclimate_flux_condition.h:45
GeoTMicroClimateFluxCondition(IndexType NewId, GeometryType::Pointer pGeometry, Properties::Pointer pProperties)
Definition: T_microclimate_flux_condition.h:52
Geometry base class.
Definition: geometry.h:71
PointerVector< TPointType > PointsArrayType
Definition: geometry.h:118
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
void load(std::string const &rTag, TDataType &rObject)
Definition: serializer.h:207
void save(std::string const &rTag, std::array< TDataType, TDataSize > const &rObject)
Definition: serializer.h:545
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
std::size_t IndexType
The definition of the index type.
Definition: key_hash.h:35
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
void InitializeSolutionStep(ConstructionUtility &rThisUtil, std::string ThermalSubModelPartName, std::string MechanicalSubModelPartName, std::string HeatFluxSubModelPartName, std::string HydraulicPressureSubModelPartName, bool thermal_conditions, bool mechanical_conditions, int phase)
Definition: add_custom_utilities_to_python.cpp:45
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
ModelPart::NodesContainerType NodesArrayType
Definition: gid_gauss_point_container.h:42
def load(f)
Definition: ode_solve.py:307
Definition: T_microclimate_flux_condition.h:29
double precipitation
Definition: T_microclimate_flux_condition.h:30
double evaporation
Definition: T_microclimate_flux_condition.h:31