OOFEM 3.0
Loading...
Searching...
No Matches
oofem::HydrationModel Class Reference

#include <hydram.h>

Inheritance diagram for oofem::HydrationModel:
Collaboration diagram for oofem::HydrationModel:

Public Member Functions

 HydrationModel ()
 Constructor.
 HydrationModel (MixtureType mix, FindRootMethod usefr)
 Constructor setting the mixture type and root-finding method.
void setMixture (MixtureType mix)
 Sets the mixture type and appropriate material parameters.
void initializeFrom (InputRecord &ir) override
double giveHydrationDegree (GaussPoint *gp, TimeStep *tStep, ValueModeType mode) const
virtual void updateInternalState (const FloatArray &vec, GaussPoint *gp, TimeStep *tStep)
MaterialStatusgiveStatus (GaussPoint *gp) const override
void computeInternalSourceVector (FloatArray &val, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) const
 Returns generated heat for given gp [kJ/m3], eventually water consumption.
virtual double _giveCharacteristicValue (double T, double h, MatResponseMode rmode, GaussPoint *gp, TimeStep *tStep) const
 Returns coefficients for LHS contribution from internal sources (dHeat/dT, dWaterSource/dw) for given temp state vector.
const char * giveInputRecordName () const override
const char * giveClassName () const override
std::unique_ptr< MaterialStatusCreateStatus (GaussPoint *gp) const override
 Creates and returns new HydrationModelStatus instance.
Public Member Functions inherited from oofem::Material
 Material (int n, Domain *d)
virtual ~Material ()=default
 Destructor.
virtual bool isCharacteristicMtrxSymmetric (MatResponseMode rMode) const
virtual void giveCharacteristicMatrix (FloatMatrix &answer, MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const
 Returns characteristic matrix of the receiver.
virtual void giveCharacteristicVector (FloatArray &answer, FloatArray &flux, MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const
 Returns characteristic vector of the receiver.
virtual double giveCharacteristicValue (MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const
 Returns characteristic value of the receiver.
virtual double give (int aProperty, GaussPoint *gp) const
virtual bool hasProperty (int aProperty, GaussPoint *gp) const
virtual void modifyProperty (int aProperty, double value, GaussPoint *gp)
double giveCastingTime () const
virtual bool isActivated (TimeStep *tStep) const
virtual bool hasMaterialModeCapability (MaterialMode mode) const
virtual bool hasCastingTimeSupport () const
virtual int setIPValue (const FloatArray &value, GaussPoint *gp, InternalStateType type)
virtual int giveIPValue (FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
void initializeFrom (InputRecord &ir) override
void giveInputRecord (DynamicInputRecord &input) override
void printYourself () override
 Prints receiver state on stdout. Useful for debugging.
virtual void saveIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp)
virtual void restoreIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp)
int checkConsistency () override
virtual void restoreConsistency (GaussPoint *gp)
virtual int initMaterial (Element *element)
virtual int packUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *ip)
virtual int unpackAndUpdateUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *ip)
virtual int estimatePackSize (DataStream &buff, GaussPoint *ip)
virtual double predictRelativeComputationalCost (GaussPoint *gp)
virtual double predictRelativeRedistributionCost (GaussPoint *gp)
virtual void initTempStatus (GaussPoint *gp) const
void saveContext (DataStream &stream, ContextMode mode) override
void restoreContext (DataStream &stream, ContextMode mode) override
Public Member Functions inherited from oofem::FEMComponent
 FEMComponent (int n, Domain *d)
virtual ~FEMComponent ()=default
 Virtual destructor.
DomaingiveDomain () const
virtual void setDomain (Domain *d)
int giveNumber () const
void setNumber (int num)
virtual void updateLocalNumbering (EntityRenumberingFunctor &f)
virtual void initializeFrom (InputRecord &ir, int priority)
virtual void initializeFinish ()
virtual void postInitialize ()
 Performs post initialization steps. Called after all components are created and initialized.
virtual void printOutputAt (FILE *file, TimeStep *tStep)
virtual InterfacegiveInterface (InterfaceType t)
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros).

Public Attributes

FindRootMethod useFindRoot

Protected Member Functions

double localResidual (double dks) const
double regulafindroot () const
double bintreefindroot () const
double mixedfindroot () const
double affinity (double ksi) const
 Returns the normalized chemical affinity A~(ksi) [1/s].
double dAdksi (double ksi) const
 Returns the derivation of chemical affinity dA~/dksi(ksi).
double dksidT (double ksi, double T, double h, double dt) const
double dksidh (double ksi, double T, double h, double dt) const
double computeIntSource (double T, double h, GaussPoint *gp, TimeStep *tStep, MatResponseMode rmode) const
 Computes and returns the derivatives of the material-generated Internal Source with respect to the tm state vector.
double computeHydrationDegreeIncrement (double ksi, double T, double h, double dt)

Protected Attributes

MixtureType mixture
 Used concrete mixture.
double hydrationStartMaxStep = 0.
 Time step lenghts at zero and complete hydration.
double hydrationEndMaxStep = 0.
double initialHydrationDegree = 0.
 !! initial hydration degree - set in initialize From, but not used
double timeScale = 0.
 time scale - used for time input in other units than seconds
double aa = 0.
 Normalized chemical affinity regression function coefficients.
double ba = 0.
double ca = 0.
double da = 0.
double e0 = 0.
 ksi_0.
double ear = 0.
 Activation term [K].
double le = 0.
 Latent heat [kJ/m3].
double cv = 0.
 Input cement content kg/m3 for evaluation of total water consumption.
double we = 0.
 Total water consumption for hydration [kg/m3].
double auxksi
 !! possible problem for parallel computation, performance???
double auxdt
double auxT
double auxh
Protected Attributes inherited from oofem::Material
Dictionary propertyDictionary
double castingTime
int preCastingTimeMat
 Material existing before casting time - optional parameter, zero by default.
Protected Attributes inherited from oofem::FEMComponent
int number
 Component number.
Domaindomain
 Link to domain object, useful for communicating with other FEM components.

Detailed Description

Definition at line 151 of file hydram.h.

Constructor & Destructor Documentation

◆ HydrationModel() [1/2]

oofem::HydrationModel::HydrationModel ( )

Constructor.

Definition at line 93 of file hydram.C.

References oofem::frMixed, oofem::Material::Material(), oofem::mtLafarge, setMixture(), and useFindRoot.

◆ HydrationModel() [2/2]

oofem::HydrationModel::HydrationModel ( MixtureType mix,
FindRootMethod usefr )

Constructor setting the mixture type and root-finding method.

Definition at line 99 of file hydram.C.

References oofem::frMixed, oofem::Material::Material(), OOFEM_ERROR, setMixture(), and useFindRoot.

Member Function Documentation

◆ _giveCharacteristicValue()

double oofem::HydrationModel::_giveCharacteristicValue ( double T,
double h,
MatResponseMode rmode,
GaussPoint * gp,
TimeStep * tStep ) const
virtual

Returns coefficients for LHS contribution from internal sources (dHeat/dT, dWaterSource/dw) for given temp state vector.

Definition at line 308 of file hydram.C.

References computeIntSource(), and OOFEM_ERROR.

◆ affinity()

double oofem::HydrationModel::affinity ( double ksi) const
protected

Returns the normalized chemical affinity A~(ksi) [1/s].

Definition at line 211 of file hydram.C.

References aa, ba, ca, da, and e0.

Referenced by dksidh(), dksidT(), and localResidual().

◆ bintreefindroot()

double oofem::HydrationModel::bintreefindroot ( ) const
protected

Definition at line 477 of file hydram.C.

References localResidual(), OOFEM_LOG_INFO, and ROOT_PRECISION_DKSI.

Referenced by computeHydrationDegreeIncrement().

◆ computeHydrationDegreeIncrement()

double oofem::HydrationModel::computeHydrationDegreeIncrement ( double ksi,
double T,
double h,
double dt )
protected

Computes and returns hydration degree increment for given ksi, T [K], dt [s]. Called by updateInternalState(val, gp, tStep)

Note
Formerly dksi, maybe should be changed to use gp & timestep.

Definition at line 322 of file hydram.C.

References auxdt, auxh, auxksi, auxT, bintreefindroot(), oofem::frBinTree, oofem::frMixed, oofem::frRegula, mixedfindroot(), OOFEM_ERROR, OOFEM_LOG_INFO, regulafindroot(), and useFindRoot.

Referenced by updateInternalState().

◆ computeInternalSourceVector()

void oofem::HydrationModel::computeInternalSourceVector ( FloatArray & val,
GaussPoint * gp,
TimeStep * tStep,
ValueModeType mode ) const

Returns generated heat for given gp [kJ/m3], eventually water consumption.

Definition at line 294 of file hydram.C.

References giveHydrationDegree(), le, and we.

◆ computeIntSource()

double oofem::HydrationModel::computeIntSource ( double T,
double h,
GaussPoint * gp,
TimeStep * tStep,
MatResponseMode rmode ) const
protected

Computes and returns the derivatives of the material-generated Internal Source with respect to the tm state vector.

Definition at line 361 of file hydram.C.

References dksidh(), dksidT(), giveHydrationDegree(), le, OOFEM_ERROR, timeScale, and we.

Referenced by _giveCharacteristicValue().

◆ CreateStatus()

std::unique_ptr< MaterialStatus > oofem::HydrationModel::CreateStatus ( GaussPoint * gp) const
overridevirtual

Creates and returns new HydrationModelStatus instance.

Reimplemented from oofem::Material.

Definition at line 545 of file hydram.C.

Referenced by giveStatus().

◆ dAdksi()

double oofem::HydrationModel::dAdksi ( double ksi) const
protected

Returns the derivation of chemical affinity dA~/dksi(ksi).

Definition at line 222 of file hydram.C.

References aa, ba, ca, da, and e0.

Referenced by dksidh(), and dksidT().

◆ dksidh()

double oofem::HydrationModel::dksidh ( double ksi,
double T,
double h,
double dt ) const
protected

Definition at line 258 of file hydram.C.

References affinity(), dAdksi(), and ear.

Referenced by computeIntSource().

◆ dksidT()

double oofem::HydrationModel::dksidT ( double ksi,
double T,
double h,
double dt ) const
protected

Definition at line 243 of file hydram.C.

References affinity(), dAdksi(), and ear.

Referenced by computeIntSource().

◆ giveClassName()

const char * oofem::HydrationModel::giveClassName ( ) const
inlineoverridevirtual
Returns
Class name of the receiver.

Implements oofem::FEMComponent.

Definition at line 266 of file hydram.h.

◆ giveHydrationDegree()

double oofem::HydrationModel::giveHydrationDegree ( GaussPoint * gp,
TimeStep * tStep,
ValueModeType mode ) const

Returns the hydration degree at end of TimeStep tStep in given integraion point. The value is obtained from hydration status, in integration point, on material level, or ... interpolated from several statuses

Parameters
gpintegration point
tStepsolution step
modevalue mode VM_Incremental or VM_Total
Returns
hydration degree or increment in given gp

Definition at line 400 of file hydram.C.

References oofem::HydrationModelStatus::giveHydrationDegree(), giveStatus(), and oofem::HydrationModelStatus::giveTempHydrationDegree().

Referenced by computeInternalSourceVector(), and computeIntSource().

◆ giveInputRecordName()

const char * oofem::HydrationModel::giveInputRecordName ( ) const
inlineoverridevirtual
Returns
Input record name of the receiver.

Implements oofem::FEMComponent.

Definition at line 265 of file hydram.h.

References _IFT_HydrationModel_Name.

◆ giveStatus()

MaterialStatus * oofem::HydrationModel::giveStatus ( GaussPoint * gp) const
overridevirtual

Returns material status of receiver in given integration point. In hydration model, the status is obtained from master gp status (status->giveHydrationModelStatus) If status does not exist, a new one is created.

Parameters
gpReturns reference to hydration model status belonging to integration point gp.
Returns
hydration model status associated with given integration point.

Reimplemented from oofem::Material.

Definition at line 270 of file hydram.C.

References CreateStatus(), oofem::HydrationModelStatusInterface::giveHydrationModelStatus(), oofem::FEMComponent::giveInterface(), oofem::HydrationModelStatusInterfaceType, OOFEM_ERROR, and oofem::HydrationModelStatusInterface::setHydrationModelStatus().

Referenced by giveHydrationDegree(), and updateInternalState().

◆ initializeFrom()

void oofem::HydrationModel::initializeFrom ( InputRecord & ir)
overridevirtual

Initializes the hydration model according to object description stored in input record. Called from master material initializeFrom, hydrationModelInterface initializeFrom selects the appropriate hydration model type.

Not a standard material - initializes from master material record, doesn't call parent initializeFrom Use hm_ prefix in parameter names to avoid confusion with master material parameters

Reimplemented from oofem::FEMComponent.

Definition at line 110 of file hydram.C.

References _IFT_HydrationModel_c60mix, _IFT_HydrationModel_cv, _IFT_HydrationModel_hheat, _IFT_HydrationModel_hydration, _IFT_HydrationModel_timeScale, _IFT_HydrationModel_water, cv, oofem::InputRecord::hasField(), initialHydrationDegree, IR_GIVE_OPTIONAL_FIELD, le, oofem::mtC60, OOFEM_LOG_INFO, setMixture(), timeScale, and we.

◆ localResidual()

double oofem::HydrationModel::localResidual ( double dks) const
protected

Definition at line 236 of file hydram.C.

References affinity(), auxdt, auxh, auxksi, auxT, and ear.

Referenced by bintreefindroot(), mixedfindroot(), and regulafindroot().

◆ mixedfindroot()

double oofem::HydrationModel::mixedfindroot ( ) const
protected

◆ regulafindroot()

double oofem::HydrationModel::regulafindroot ( ) const
protected

Definition at line 454 of file hydram.C.

References localResidual(), OOFEM_LOG_INFO, and ROOT_PRECISION_DKSI.

Referenced by computeHydrationDegreeIncrement().

◆ setMixture()

void oofem::HydrationModel::setMixture ( MixtureType mix)

Sets the mixture type and appropriate material parameters.

Definition at line 165 of file hydram.C.

References aa, ba, ca, da, e0, ear, le, mixture, oofem::mtC100, oofem::mtC60, oofem::mtHuber, oofem::mtLafarge, and OOFEM_ERROR.

Referenced by HydrationModel(), HydrationModel(), and initializeFrom().

◆ updateInternalState()

void oofem::HydrationModel::updateInternalState ( const FloatArray & vec,
GaussPoint * gp,
TimeStep * tStep )
virtual

Updates internal state of material according to new state vector - computes the hydration degree for time tStep.

Parameters
vecnew state vector
gpintegration point
tStepsolution step

Definition at line 413 of file hydram.C.

References computeHydrationDegreeIncrement(), oofem::HydrationModelStatus::giveHydrationDegree(), oofem::FloatArray::giveSize(), giveStatus(), oofem::TimeStep::giveTimeIncrement(), initialHydrationDegree, OOFEM_ERROR, oofem::HydrationModelStatus::setHydrationDegree(), oofem::HydrationModelStatus::setTempHydrationDegree(), and timeScale.

Member Data Documentation

◆ aa

double oofem::HydrationModel::aa = 0.
protected

Normalized chemical affinity regression function coefficients.

Definition at line 164 of file hydram.h.

Referenced by affinity(), dAdksi(), and setMixture().

◆ auxdt

double oofem::HydrationModel::auxdt
protected

Definition at line 178 of file hydram.h.

Referenced by computeHydrationDegreeIncrement(), and localResidual().

◆ auxh

double oofem::HydrationModel::auxh
protected

Definition at line 178 of file hydram.h.

Referenced by computeHydrationDegreeIncrement(), and localResidual().

◆ auxksi

double oofem::HydrationModel::auxksi
protected

!! possible problem for parallel computation, performance???

Definition at line 178 of file hydram.h.

Referenced by computeHydrationDegreeIncrement(), and localResidual().

◆ auxT

double oofem::HydrationModel::auxT
protected

Definition at line 178 of file hydram.h.

Referenced by computeHydrationDegreeIncrement(), and localResidual().

◆ ba

double oofem::HydrationModel::ba = 0.
protected

Definition at line 165 of file hydram.h.

Referenced by affinity(), dAdksi(), and setMixture().

◆ ca

double oofem::HydrationModel::ca = 0.
protected

Definition at line 166 of file hydram.h.

Referenced by affinity(), dAdksi(), and setMixture().

◆ cv

double oofem::HydrationModel::cv = 0.
protected

Input cement content kg/m3 for evaluation of total water consumption.

Definition at line 172 of file hydram.h.

Referenced by initializeFrom().

◆ da

double oofem::HydrationModel::da = 0.
protected

Definition at line 167 of file hydram.h.

Referenced by affinity(), dAdksi(), and setMixture().

◆ e0

double oofem::HydrationModel::e0 = 0.
protected

ksi_0.

Definition at line 169 of file hydram.h.

Referenced by affinity(), dAdksi(), and setMixture().

◆ ear

double oofem::HydrationModel::ear = 0.
protected

Activation term [K].

Definition at line 170 of file hydram.h.

Referenced by dksidh(), dksidT(), localResidual(), and setMixture().

◆ hydrationEndMaxStep

double oofem::HydrationModel::hydrationEndMaxStep = 0.
protected

Definition at line 157 of file hydram.h.

◆ hydrationStartMaxStep

double oofem::HydrationModel::hydrationStartMaxStep = 0.
protected

Time step lenghts at zero and complete hydration.

Definition at line 157 of file hydram.h.

◆ initialHydrationDegree

double oofem::HydrationModel::initialHydrationDegree = 0.
protected

!! initial hydration degree - set in initialize From, but not used

Definition at line 159 of file hydram.h.

Referenced by initializeFrom(), and updateInternalState().

◆ le

double oofem::HydrationModel::le = 0.
protected

Latent heat [kJ/m3].

Definition at line 171 of file hydram.h.

Referenced by computeInternalSourceVector(), computeIntSource(), initializeFrom(), and setMixture().

◆ mixture

MixtureType oofem::HydrationModel::mixture
protected

Used concrete mixture.

Definition at line 155 of file hydram.h.

Referenced by setMixture().

◆ timeScale

double oofem::HydrationModel::timeScale = 0.
protected

time scale - used for time input in other units than seconds

Definition at line 161 of file hydram.h.

Referenced by computeIntSource(), initializeFrom(), and updateInternalState().

◆ useFindRoot

FindRootMethod oofem::HydrationModel::useFindRoot

Definition at line 205 of file hydram.h.

Referenced by computeHydrationDegreeIncrement(), HydrationModel(), and HydrationModel().

◆ we

double oofem::HydrationModel::we = 0.
protected

Total water consumption for hydration [kg/m3].

Definition at line 173 of file hydram.h.

Referenced by computeInternalSourceVector(), computeIntSource(), and initializeFrom().


The documentation for this class was generated from the following files:

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011