OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::HydrationModel Class Reference

#include <hydram.h>

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

Public Member Functions

 HydrationModel ()
 Constructor. More...
 
 HydrationModel (MixtureType mix, FindRootMethod usefr)
 Constructor setting the mixture type and root-finding method. More...
 
virtual ~HydrationModel ()
 Destructor. More...
 
void setMixture (MixtureType mix)
 Sets the mixture type and appropriate material parameters. More...
 
virtual IRResultType initializeFrom (InputRecord *ir)
 Initializes the hydration model according to object description stored in input record. More...
 
double giveHydrationDegree (GaussPoint *gp, TimeStep *tStep, ValueModeType mode)
 Returns the hydration degree at end of TimeStep tStep in given integraion point. More...
 
virtual void updateInternalState (const FloatArray &vec, GaussPoint *gp, TimeStep *tStep)
 Updates internal state of material according to new state vector - computes the hydration degree for time tStep. More...
 
virtual MaterialStatusgiveStatus (GaussPoint *gp) const
 Returns material status of receiver in given integration point. More...
 
void computeInternalSourceVector (FloatArray &val, GaussPoint *gp, TimeStep *tStep, ValueModeType mode)
 Returns generated heat for given gp [kJ/m3], eventually water consumption. More...
 
virtual double giveCharacteristicValue (const FloatArray &vec, MatResponseMode rmode, GaussPoint *gp, TimeStep *tStep)
 Returns coefficients for LHS contribution from internal sources (dHeat/dT, dWaterSource/dw) for given temp state vector. More...
 
virtual const char * giveInputRecordName () const
 
virtual const char * giveClassName () const
 
- Public Member Functions inherited from oofem::Material
 Material (int n, Domain *d)
 Constructor. More...
 
virtual ~Material ()
 Destructor. More...
 
virtual bool isCharacteristicMtrxSymmetric (MatResponseMode rMode)
 Returns true if stiffness matrix of receiver is symmetric Default implementation returns true. More...
 
virtual double give (int aProperty, GaussPoint *gp)
 Returns the value of material property 'aProperty'. More...
 
virtual bool hasProperty (int aProperty, GaussPoint *gp)
 Returns true if 'aProperty' exists on material. More...
 
virtual void modifyProperty (int aProperty, double value, GaussPoint *gp)
 Modify 'aProperty', which already exists on material. More...
 
double giveCastingTime ()
 
virtual bool isActivated (TimeStep *tStep)
 
virtual int hasNonLinearBehaviour ()
 Returns nonzero if receiver is non linear. More...
 
virtual int hasMaterialModeCapability (MaterialMode mode)
 Tests if material supports material mode. More...
 
virtual int hasCastingTimeSupport ()
 Tests if material supports casting time. More...
 
virtual void giveInputRecord (DynamicInputRecord &input)
 Setups the input record string of receiver. More...
 
virtual void printYourself ()
 Prints receiver state on stdout. Useful for debugging. More...
 
virtual contextIOResultType saveIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp)
 Stores integration point state to output stream. More...
 
virtual contextIOResultType restoreIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp)
 Reads integration point state to output stream. More...
 
virtual int checkConsistency ()
 Allows programmer to test some internal data, before computation begins. More...
 
virtual int initMaterial (Element *element)
 Optional function to call specific procedures when initializing a material. More...
 
virtual int packUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *ip)
 Pack all necessary data of integration point (according to element parallel_mode) into given communication buffer. More...
 
virtual int unpackAndUpdateUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *ip)
 Unpack and updates all necessary data of given integration point (according to element parallel_mode) into given communication buffer. More...
 
virtual int estimatePackSize (DataStream &buff, GaussPoint *ip)
 Estimates the necessary pack size to hold all packed data of receiver. More...
 
virtual double predictRelativeComputationalCost (GaussPoint *gp)
 Returns the weight representing relative computational cost of receiver The reference material model is linear isotropic material - its weight is set to 1.0 The other material models should compare to this reference model. More...
 
virtual double predictRelativeRedistributionCost (GaussPoint *gp)
 Returns the relative redistribution cost of the receiver. More...
 
virtual void initTempStatus (GaussPoint *gp)
 Initializes temporary variables stored in integration point status at the beginning of new time step. More...
 
virtual int setIPValue (const FloatArray &value, GaussPoint *gp, InternalStateType type)
 Sets the value of a certain variable at a given integration point to the given value. More...
 
virtual int giveIPValue (FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
 Returns the integration point corresponding value in Reduced form. More...
 
- Public Member Functions inherited from oofem::FEMComponent
 FEMComponent (int n, Domain *d)
 Regular constructor, creates component with given number and belonging to given domain. More...
 
virtual ~FEMComponent ()
 Virtual destructor. More...
 
DomaingiveDomain () const
 
virtual void setDomain (Domain *d)
 Sets associated Domain. More...
 
int giveNumber () const
 
void setNumber (int num)
 Sets number of receiver. More...
 
virtual void updateLocalNumbering (EntityRenumberingFunctor &f)
 Local renumbering support. More...
 
virtual contextIOResultType saveContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 Stores receiver state to output stream. More...
 
virtual contextIOResultType restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 Restores the receiver state previously written in stream. More...
 
virtual void printOutputAt (FILE *file, TimeStep *tStep)
 Prints output of receiver to stream, for given time step. More...
 
virtual InterfacegiveInterface (InterfaceType t)
 Interface requesting service. More...
 
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros). More...
 

Public Attributes

FindRootMethod useFindRoot
 

Protected Member Functions

double localResidual (double dks)
 
double regulafindroot ()
 
double bintreefindroot ()
 
double mixedfindroot ()
 
double affinity (double ksi)
 Returns the normalized chemical affinity A~(ksi) [1/s]. More...
 
double dAdksi (double ksi)
 Returns the derivation of chemical affinity dA~/dksi(ksi). More...
 
double dksidT (double ksi, double T, double h, double dt)
 
double dksidh (double ksi, double T, double h, double dt)
 
double computeIntSource (const FloatArray &vec, GaussPoint *gp, TimeStep *tStep, MatResponseMode rmode)
 Computes and returns the derivatives of the material-generated Internal Source with respect to the tm state vector. More...
 
double computeHydrationDegreeIncrement (double ksi, double T, double h, double dt)
 Computes and returns hydration degree increment for given ksi, T [K], dt [s]. More...
 
virtual MaterialStatusCreateStatus (GaussPoint *gp) const
 Creates and returns new HydrationModelStatus instance. More...
 

Protected Attributes

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

Detailed Description

Definition at line 153 of file hydram.h.

Constructor & Destructor Documentation

oofem::HydrationModel::HydrationModel ( )

Constructor.

Definition at line 102 of file hydram.C.

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

Referenced by oofem::HydrationModelInterface::initializeFrom().

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

Constructor setting the mixture type and root-finding method.

Definition at line 109 of file hydram.C.

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

virtual oofem::HydrationModel::~HydrationModel ( )
inlinevirtual

Member Function Documentation

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

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

Definition at line 225 of file hydram.C.

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

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

double oofem::HydrationModel::bintreefindroot ( )
protected

Definition at line 505 of file hydram.C.

References localResidual(), OOFEM_LOG_INFO, and ROOT_PRECISION_DKSI.

Referenced by 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 347 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().

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

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

Definition at line 313 of file hydram.C.

References giveHydrationDegree(), le, oofem::FloatArray::resize(), and we.

double oofem::HydrationModel::computeIntSource ( const FloatArray vec,
GaussPoint gp,
TimeStep tStep,
MatResponseMode  rmode 
)
protected

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

Definition at line 386 of file hydram.C.

References dksidh(), dksidT(), giveHydrationDegree(), oofem::TimeStep::giveTimeIncrement(), le, OOFEM_ERROR, timeScale, and we.

Referenced by giveCharacteristicValue().

MaterialStatus * oofem::HydrationModel::CreateStatus ( GaussPoint gp) const
protectedvirtual

Creates and returns new HydrationModelStatus instance.

Reimplemented from oofem::Material.

Definition at line 574 of file hydram.C.

References oofem::FEMComponent::giveDomain().

Referenced by giveStatus().

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

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

Definition at line 236 of file hydram.C.

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

Referenced by dksidh(), and dksidT().

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

Definition at line 277 of file hydram.C.

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

Referenced by computeIntSource().

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

Definition at line 260 of file hydram.C.

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

Referenced by computeIntSource().

double oofem::HydrationModel::giveCharacteristicValue ( const FloatArray vec,
MatResponseMode  rmode,
GaussPoint gp,
TimeStep tStep 
)
virtual

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

Definition at line 327 of file hydram.C.

References computeIntSource(), oofem::FloatArray::isEmpty(), and OOFEM_ERROR.

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

Implements oofem::FEMComponent.

Definition at line 271 of file hydram.h.

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

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 428 of file hydram.C.

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

Referenced by computeInternalSourceVector(), and computeIntSource().

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

Implements oofem::FEMComponent.

Definition at line 270 of file hydram.h.

References _IFT_HydrationModel_Name.

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

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 291 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().

IRResultType oofem::HydrationModel::initializeFrom ( InputRecord ir)
virtual

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::Material.

Definition at line 120 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, oofem::IRRT_BAD_FORMAT, oofem::IRRT_OK, le, oofem::mtC60, OOFEM_LOG_INFO, OOFEM_WARNING, setMixture(), timeScale, and we.

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

Definition at line 253 of file hydram.C.

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

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

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

Definition at line 482 of file hydram.C.

References localResidual(), OOFEM_LOG_INFO, and ROOT_PRECISION_DKSI.

Referenced by computeHydrationDegreeIncrement().

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

Sets the mixture type and appropriate material parameters.

Definition at line 179 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(), and initializeFrom().

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 441 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

double oofem::HydrationModel::aa
protected

Normalized chemical affinity regression function coefficients.

Definition at line 166 of file hydram.h.

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

double oofem::HydrationModel::auxdt
protected

Definition at line 180 of file hydram.h.

Referenced by computeHydrationDegreeIncrement(), and localResidual().

double oofem::HydrationModel::auxh
protected

Definition at line 180 of file hydram.h.

Referenced by computeHydrationDegreeIncrement(), and localResidual().

double oofem::HydrationModel::auxksi
protected

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

Definition at line 180 of file hydram.h.

Referenced by computeHydrationDegreeIncrement(), and localResidual().

double oofem::HydrationModel::auxT
protected

Definition at line 180 of file hydram.h.

Referenced by computeHydrationDegreeIncrement(), and localResidual().

double oofem::HydrationModel::ba
protected

Definition at line 166 of file hydram.h.

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

double oofem::HydrationModel::ca
protected

Definition at line 166 of file hydram.h.

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

double oofem::HydrationModel::cv
protected

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

Definition at line 166 of file hydram.h.

Referenced by initializeFrom().

double oofem::HydrationModel::da
protected

Definition at line 166 of file hydram.h.

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

double oofem::HydrationModel::e0
protected

ksi_0.

Definition at line 166 of file hydram.h.

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

double oofem::HydrationModel::ear
protected

Activation term [K].

Definition at line 166 of file hydram.h.

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

double oofem::HydrationModel::hydrationEndMaxStep
protected

Definition at line 159 of file hydram.h.

double oofem::HydrationModel::hydrationStartMaxStep
protected

Time step lenghts at zero and complete hydration.

Definition at line 159 of file hydram.h.

double oofem::HydrationModel::initialHydrationDegree
protected

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

Definition at line 161 of file hydram.h.

Referenced by initializeFrom(), and updateInternalState().

double oofem::HydrationModel::le
protected

Latent heat [kJ/m3].

Definition at line 166 of file hydram.h.

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

MixtureType oofem::HydrationModel::mixture
protected

Used concrete mixture.

Definition at line 157 of file hydram.h.

Referenced by setMixture().

double oofem::HydrationModel::timeScale
protected

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

Definition at line 163 of file hydram.h.

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

FindRootMethod oofem::HydrationModel::useFindRoot

Definition at line 207 of file hydram.h.

Referenced by computeHydrationDegreeIncrement(), and HydrationModel().

double oofem::HydrationModel::we
protected

Total water consumption for hydration [kg/m3].

Definition at line 166 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 documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:36 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011