43#define PRECAST_CAPACITY_COEFF 1e-2
54 HeMoTKMaterial :: initializeFrom(ir);
57 HydrationModelInterface :: initializeFrom(ir);
78 printf(
"\nHydratingHeMoMat %d: using mixture %d.\n",
giveNumber(), value);
82 printf(
"HydratingHeMoMat %d: hydration heat neglected.\n",
giveNumber() );
91 printf(
"HydratingHeMoMat %d: hydration heat not included in LHS.\n",
giveNumber() );
109 OOFEM_ERROR(
"Can't setup undefined hydrationModel.");
114HydratingHeMoMaterial :: hasInternalSource()
const
128 hydrationModel->computeInternalSourceVector(val, gp, tStep, VM_Incremental);
129 val.times( 1. / tStep->giveTimeIncrement() );
148 ms->setTempTemperature(vec[0]);
149 ms->setTempHumidity(vec[1]);
173 HydrationModelInterface :: updateInternalState(vech, gp, tStep);
177 FILE *vyst = fopen(
"teplota.out",
"a");
186 fprintf( vyst,
"Elem %.3d krok %.2d: t= %.0f, dt=%.0f, %ld. it, ksi= %.12f, T= %.8f, heat=%.8f\n", gp->
giveElement()->
giveNumber(), tStep->
giveNumber(),
196HydratingHeMoMaterial :: giveCharacteristicValue(MatResponseMode rmode,
GaussPoint *gp,
TimeStep *tStep)
const
200 if ( rmode >= Capacity_ww && rmode <= Capacity_wh ) {
201 answer = HeMoTKMaterial :: giveCharacteristicValue(rmode, gp, tStep);
205 }
else if ( rmode >= IntSource_ww && rmode <= IntSource_wh ) {
212 double h = status->giveTempHumidity();
215 if ( rmode == IntSource_ww || rmode == IntSource_hw ) {
220 OOFEM_ERROR(
"unknown MatResponseMode (%s)", __MatResponseModeToString(rmode) );
229 TransportMaterial :: saveIPContext(stream, mode, gp);
232 HydrationModelInterface :: saveContext(stream, mode);
238 TransportMaterial :: restoreIPContext(stream, mode, gp);
241 HydrationModelInterface :: restoreContext(stream, mode);
248 if ( type == IST_HydrationDegree ) {
257 return HeMoTKMaterial :: giveIPValue(answer, gp, type, tStep);
261std::unique_ptr<MaterialStatus>
264 return std::make_unique<HydratingTransportMaterialStatus>(gp);
#define REGISTER_Material(class)
Index giveSize() const
Returns the size of receiver.
void zero()
Zeroes all coefficients of receiver.
bool isEmpty() const
Returns true if receiver is empty.
int giveNumber()
Returns number of receiver.
Element * giveElement()
Returns corresponding element to receiver.
double give_dphi_dw(double w) const
double inverse_sorption_isotherm(double w) const
double give(int aProperty, GaussPoint *gp) const override
double giveTempTemperature() const
Return last field.
void setMixture(MixtureType mix)
void computeInternalSourceVector(FloatArray &val, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) const override
std ::unique_ptr< HydrationModel > hydrationModel
Reference to the associated hydrationModel instance.
double giveHydrationDegree(GaussPoint *gp, TimeStep *tStep, ValueModeType mode) const
double castAt
Material cast time - start of hydration.
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
double giveTimeIncrement()
Returns solution step associated time increment.
double giveTargetTime()
Returns target time.
int giveNumber()
Returns receiver's number.
StateCounterType giveSolutionStateCounter()
#define PRECAST_CAPACITY_COEFF
#define _IFT_HydratingHeMoMaterial_noHeat
#define _IFT_HydratingHeMoMaterial_mix
#define _IFT_HydratingHeMoMaterial_noLHS
#define _IFT_HydratingHeMoMaterial_hydration