OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
#include <hydram.h>
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 MaterialStatus * | giveStatus (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... | |
Domain * | giveDomain () 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 Interface * | giveInterface (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 MaterialStatus * | CreateStatus (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... | |
Domain * | domain |
Link to domain object, useful for communicating with other FEM components. More... | |
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.
|
inlinevirtual |
Destructor.
Definition at line 213 of file hydram.h.
References oofem::HydrationModelStatus::giveHydrationDegree(), oofem::IntegrationPointStatus::gp, and oofem::MaterialStatus::initializeFrom().
|
protected |
|
protected |
Definition at line 505 of file hydram.C.
References localResidual(), OOFEM_LOG_INFO, and ROOT_PRECISION_DKSI.
Referenced by computeHydrationDegreeIncrement().
|
protected |
Computes and returns hydration degree increment for given ksi, T [K], dt [s].
Called by updateInternalState(val, gp, tStep)
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.
|
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().
|
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().
|
protected |
|
protected |
Definition at line 277 of file hydram.C.
References affinity(), dAdksi(), and ear.
Referenced by computeIntSource().
|
protected |
Definition at line 260 of file hydram.C.
References affinity(), dAdksi(), and ear.
Referenced by computeIntSource().
|
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.
|
inlinevirtual |
Implements oofem::FEMComponent.
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
gp | integration point |
tStep | solution step |
mode | value mode VM_Incremental or VM_Total |
Definition at line 428 of file hydram.C.
References oofem::HydrationModelStatus::giveHydrationDegree(), giveStatus(), and oofem::HydrationModelStatus::giveTempHydrationDegree().
Referenced by computeInternalSourceVector(), and computeIntSource().
|
inlinevirtual |
Implements oofem::FEMComponent.
Definition at line 270 of file hydram.h.
References _IFT_HydrationModel_Name.
|
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.
gp | Returns reference to hydration model status belonging to integration point gp. |
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().
|
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.
|
protected |
Definition at line 253 of file hydram.C.
References affinity(), auxdt, auxh, auxksi, auxT, and ear.
Referenced by bintreefindroot(), mixedfindroot(), and regulafindroot().
|
protected |
Definition at line 529 of file hydram.C.
References BINARY_TREE_STEPS, localResidual(), OOFEM_LOG_INFO, and ROOT_PRECISION_DKSI.
Referenced by computeHydrationDegreeIncrement().
|
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().
|
virtual |
Updates internal state of material according to new state vector - computes the hydration degree for time tStep.
vec | new state vector |
gp | integration point |
tStep | solution 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.
|
protected |
Normalized chemical affinity regression function coefficients.
Definition at line 166 of file hydram.h.
Referenced by affinity(), dAdksi(), and setMixture().
|
protected |
Definition at line 180 of file hydram.h.
Referenced by computeHydrationDegreeIncrement(), and localResidual().
|
protected |
Definition at line 180 of file hydram.h.
Referenced by computeHydrationDegreeIncrement(), and localResidual().
|
protected |
!! possible problem for parallel computation, performance???
Definition at line 180 of file hydram.h.
Referenced by computeHydrationDegreeIncrement(), and localResidual().
|
protected |
Definition at line 180 of file hydram.h.
Referenced by computeHydrationDegreeIncrement(), and localResidual().
|
protected |
Definition at line 166 of file hydram.h.
Referenced by affinity(), dAdksi(), and setMixture().
|
protected |
Definition at line 166 of file hydram.h.
Referenced by affinity(), dAdksi(), and setMixture().
|
protected |
Input cement content kg/m3 for evaluation of total water consumption.
Definition at line 166 of file hydram.h.
Referenced by initializeFrom().
|
protected |
Definition at line 166 of file hydram.h.
Referenced by affinity(), dAdksi(), and setMixture().
|
protected |
ksi_0.
Definition at line 166 of file hydram.h.
Referenced by affinity(), dAdksi(), and setMixture().
|
protected |
Activation term [K].
Definition at line 166 of file hydram.h.
Referenced by dksidh(), dksidT(), localResidual(), and setMixture().
|
protected |
|
protected |
|
protected |
!! initial hydration degree - set in initialize From, but not used
Definition at line 161 of file hydram.h.
Referenced by initializeFrom(), and updateInternalState().
|
protected |
Latent heat [kJ/m3].
Definition at line 166 of file hydram.h.
Referenced by computeInternalSourceVector(), computeIntSource(), initializeFrom(), and setMixture().
|
protected |
|
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().
|
protected |
Total water consumption for hydration [kg/m3].
Definition at line 166 of file hydram.h.
Referenced by computeInternalSourceVector(), computeIntSource(), and initializeFrom().