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

#include <hemotkmat.h>

Inheritance diagram for oofem::HeMoTKMaterial:
Collaboration diagram for oofem::HeMoTKMaterial:

Public Member Functions

 HeMoTKMaterial (int n, Domain *d)
std::pair< FloatArrayF< 3 >, FloatArrayF< 3 > > computeHeMoFlux3D (const FloatArrayF< 3 > &grad_t, const FloatArrayF< 3 > &grad_w, double t, double h, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 3, 3 > computeTangent3D (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
double giveCharacteristicValue (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
bool isCharacteristicMtrxSymmetric (MatResponseMode rMode) const override
void initializeFrom (InputRecord &ir) override
double give (int aProperty, GaussPoint *gp) const override
bool hasMaterialModeCapability (MaterialMode mode) const override
int giveIPValue (FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
const char * giveInputRecordName () const override
const char * giveClassName () const override
double sorption_isotherm (double phi) const
double inverse_sorption_isotherm (double w) const
double give_dphi_dw (double w) const
std::unique_ptr< MaterialStatusCreateStatus (GaussPoint *gp) const override
Public Member Functions inherited from oofem::TransportMaterial
 TransportMaterial (int n, Domain *d)
virtual void giveFluxVector (FloatArray &answer, GaussPoint *gp, const FloatArray &grad, const FloatArray &field, TimeStep *tStep) const
virtual FloatArrayF< 3 > computeFlux3D (const FloatArrayF< 3 > &grad, double field, GaussPoint *gp, TimeStep *tStep) const
FloatArrayF< 2 > computeFlux2D (const FloatArrayF< 2 > &grad, double field, GaussPoint *gp, TimeStep *tStep) const
FloatArrayF< 1 > computeFlux1D (const FloatArrayF< 1 > &grad, double field, GaussPoint *gp, TimeStep *tStep) const
std::pair< FloatArrayF< 2 >, FloatArrayF< 2 > > computeHeMoFlux2D (const FloatArrayF< 2 > &grad_t, const FloatArrayF< 2 > &grad_w, double t, double h, GaussPoint *gp, TimeStep *tStep) const
std::pair< FloatArrayF< 1 >, FloatArrayF< 1 > > computeHeMoFlux1D (const FloatArrayF< 1 > &grad_t, const FloatArrayF< 1 > &grad_w, double t, double h, GaussPoint *gp, TimeStep *tStep) const
virtual void giveCharacteristicMatrix (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 2, 2 > computeTangent2D (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const
FloatMatrixF< 1, 1 > computeTangent1D (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const
virtual void updateInternalState (const FloatArray &state, GaussPoint *gp, TimeStep *tStep)
virtual bool hasInternalSource () const
virtual void computeInternalSourceVector (FloatArray &val, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) const
int giveIPValue (FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
std::unique_ptr< MaterialStatusCreateStatus (GaussPoint *gp) const override
Public Member Functions inherited from oofem::Material
 Material (int n, Domain *d)
virtual ~Material ()=default
 Destructor.
virtual void giveCharacteristicVector (FloatArray &answer, FloatArray &flux, MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const
 Returns characteristic vector of the receiver.
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 hasCastingTimeSupport () const
virtual int setIPValue (const FloatArray &value, GaussPoint *gp, InternalStateType type)
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 MaterialStatusgiveStatus (GaussPoint *gp) const
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).

Protected Member Functions

double computeCapacityCoeff (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const
double giveHumidity (GaussPoint *gp, ValueModeType mode) const override
double get_latent (double w, double t) const
double get_ceff (double w, double t) const
double get_chi (double w, double t) const
double perm_wt (double w, double t) const
double perm_ww (double w, double t) const
double give_delta_gw (double phi) const
double give_dpgw_dt (double t, double phi) const
double get_b (double w, double t) const
double get_sat (double w, double t) const
double give_p_gws (double t) const

Protected Attributes

double a_0 = 0.
 Constant (obtained from experiments) [Bazant and Najjar, 1972].
double nn = 0.
 Constant-exponent (obtained from experiments) [Bazant and Najjar, 1972].
double phi_c = 0.
 Constant-relative humidity (obtained from experiments) [Bazant and Najjar, 1972].
double delta_wet = 0.
 Constant-water vapor permeability (obtained from experiments) [Bazant and Najjar, 1972].
double w_h = 0.
 Constant water content (obtained from experiments) [Pedersen, 1990].
double n = 0.
 Constant-exponent (obtained from experiments) [Pedersen, 1990].
double a = 0.
 Constant (obtained from experiments) [Pedersen, 1990].
double latent = 0.
 Latent heat of evaporation.
double c = 0.
 Thermal capacity.
double rho = 0.
 Volume density.
double chi_eff = 0.
 Effective thermal conductivity.
double por = 0.
 Porosity.
double rho_gws = 0.
 Saturation volume density.
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

This class implements a coupled heat and mass transfer material model. It computes conductivity and capacity matrices for coupled heat and moisture transfer. Assumptions: Water vapor is the only driving mechanism; relative humidity is from range 0.2 - 0.98 (I and II region).

Author
Tomas Krejci Source: T.K. Doctoral Thesis; Bazant and Najjar, 1972; Pedersen, 1990.

Definition at line 66 of file hemotkmat.h.

Constructor & Destructor Documentation

◆ HeMoTKMaterial()

oofem::HeMoTKMaterial::HeMoTKMaterial ( int n,
Domain * d )
inline

Constructor. Creates material with given number, belonging to given domain.

Parameters
nMaterial number.
dDomain to which new material will belong.

Definition at line 92 of file hemotkmat.h.

References n, and oofem::TransportMaterial::TransportMaterial().

Referenced by oofem::HydratingHeMoMaterial::HydratingHeMoMaterial().

Member Function Documentation

◆ computeCapacityCoeff()

double oofem::HeMoTKMaterial::computeCapacityCoeff ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
protected

◆ computeHeMoFlux3D()

std::pair< FloatArrayF< 3 >, FloatArrayF< 3 > > oofem::HeMoTKMaterial::computeHeMoFlux3D ( const FloatArrayF< 3 > & grad_t,
const FloatArrayF< 3 > & grad_w,
double t,
double h,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Reimplemented from oofem::TransportMaterial.

Definition at line 83 of file hemotkmat.C.

References get_chi(), get_latent(), oofem::Material::giveStatus(), perm_wt(), and perm_ww().

◆ computeTangent3D()

FloatMatrixF< 3, 3 > oofem::HeMoTKMaterial::computeTangent3D ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ CreateStatus()

std::unique_ptr< MaterialStatus > oofem::HeMoTKMaterial::CreateStatus ( GaussPoint * gp) const
inlineoverridevirtual

Creates new copy of associated status and inserts it into given integration point.

Parameters
gpIntegration point where newly created status will be stored.
Returns
Reference to new status.

Reimplemented from oofem::Material.

Reimplemented in oofem::HydratingHeMoMaterial.

Definition at line 115 of file hemotkmat.h.

◆ get_b()

double oofem::HeMoTKMaterial::get_b ( double w,
double t ) const
protected

Definition at line 316 of file hemotkmat.C.

References get_sat(), give_dphi_dw(), inverse_sorption_isotherm(), por, and rho_gws.

Referenced by computeCapacityCoeff().

◆ get_ceff()

double oofem::HeMoTKMaterial::get_ceff ( double w,
double t ) const
protected

Definition at line 337 of file hemotkmat.C.

References c, and rho.

Referenced by computeCapacityCoeff().

◆ get_chi()

double oofem::HeMoTKMaterial::get_chi ( double w,
double t ) const
protected

Definition at line 345 of file hemotkmat.C.

References chi_eff.

Referenced by computeHeMoFlux3D(), and computeTangent3D().

◆ get_latent()

double oofem::HeMoTKMaterial::get_latent ( double w,
double t ) const
protected

Definition at line 309 of file hemotkmat.C.

References latent.

Referenced by computeCapacityCoeff(), computeHeMoFlux3D(), and computeTangent3D().

◆ get_sat()

double oofem::HeMoTKMaterial::get_sat ( double w,
double t ) const
protected

Definition at line 329 of file hemotkmat.C.

Referenced by get_b().

◆ give()

double oofem::HeMoTKMaterial::give ( int aProperty,
GaussPoint * gp ) const
overridevirtual

Returns the value of material property 'aProperty'. Property must be identified by unique int id. Integration point also passed to allow for materials with spatially varying properties

Parameters
aPropertyID of property requested.
gpIntegration point,
Returns
Property value.

Reimplemented from oofem::Material.

Definition at line 76 of file hemotkmat.C.

Referenced by oofem::HydratingHeMoMaterial::updateInternalState().

◆ give_delta_gw()

double oofem::HeMoTKMaterial::give_delta_gw ( double phi) const
protected

Definition at line 212 of file hemotkmat.C.

References a_0, delta_wet, nn, OOFEM_ERROR, and phi_c.

Referenced by perm_wt(), and perm_ww().

◆ give_dpgw_dt()

double oofem::HeMoTKMaterial::give_dpgw_dt ( double t,
double phi ) const
protected

Definition at line 282 of file hemotkmat.C.

Referenced by perm_wt().

◆ give_dphi_dw()

double oofem::HeMoTKMaterial::give_dphi_dw ( double w) const

Definition at line 268 of file hemotkmat.C.

References a, n, and w_h.

Referenced by get_b(), oofem::HydratingHeMoMaterial::giveCharacteristicValue(), and perm_ww().

◆ give_p_gws()

double oofem::HeMoTKMaterial::give_p_gws ( double t) const
protected

Definition at line 297 of file hemotkmat.C.

Referenced by perm_ww().

◆ giveCharacteristicValue()

double oofem::HeMoTKMaterial::giveCharacteristicValue ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Computes the characteristic value of receiver in given integration point, respecting its history. The algorithm should use temporary or equilibrium history variables stored in integration point status to compute and return required result.

Parameters
modeMaterial response mode.
gpIntegration point.
tStepTime step (most models are able to respond only when tStep is current time step).

Implements oofem::TransportMaterial.

Reimplemented in oofem::HydratingHeMoMaterial.

Definition at line 127 of file hemotkmat.C.

References computeCapacityCoeff().

◆ giveClassName()

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

Implements oofem::FEMComponent.

Reimplemented in oofem::HydratingHeMoMaterial.

Definition at line 109 of file hemotkmat.h.

◆ giveHumidity()

double oofem::HeMoTKMaterial::giveHumidity ( GaussPoint * gp,
ValueModeType mode ) const
overrideprotectedvirtual

Returns positive value of humidity, use VM_Velocity for previous (equilibrated) value

Reimplemented from oofem::TransportMaterial.

Definition at line 162 of file hemotkmat.C.

References oofem::HeMoTransportMaterialStatus::giveHumidity(), oofem::Material::giveStatus(), and inverse_sorption_isotherm().

Referenced by giveIPValue().

◆ giveInputRecordName()

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

Implements oofem::FEMComponent.

Reimplemented in oofem::HydratingHeMoMaterial.

Definition at line 108 of file hemotkmat.h.

References _IFT_HeMoTKMaterial_Name.

◆ giveIPValue()

int oofem::HeMoTKMaterial::giveIPValue ( FloatArray & answer,
GaussPoint * gp,
InternalStateType type,
TimeStep * tStep )
overridevirtual

Returns the integration point corresponding value in Reduced form.

Parameters
answerContain corresponding ip value, zero sized if not available.
gpIntegration point to which the value refers.
typeDetermines the type of internal variable.
tStepDetermines the time step.
Returns
Nonzero if the assignment can be done, zero if this type of variable is not supported.

Reimplemented from oofem::Material.

Reimplemented in oofem::HydratingHeMoMaterial.

Definition at line 364 of file hemotkmat.C.

References oofem::FloatArray::at(), giveHumidity(), and oofem::FloatArray::resize().

◆ hasMaterialModeCapability()

bool oofem::HeMoTKMaterial::hasMaterialModeCapability ( MaterialMode mode) const
overridevirtual

Tests if material supports material mode.

Parameters
modeRequired material mode.
Returns
Nonzero if supported, zero otherwise.

Reimplemented from oofem::Material.

Definition at line 45 of file hemotkmat.C.

◆ initializeFrom()

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

Initializes receiver according to object description stored in input record. This function is called immediately after creating object using constructor. Input record can be imagined as data record in component database belonging to receiver. Receiver may use value-name extracting functions to extract particular field from record. Note that initializeFrom may be called mutiple times.

See also
IR_GIVE_FIELD
IR_GIVE_OPTIONAL_FIELD
Parameters
irInput record to initialize from.
priorityPriority of the input record. This is used to determine the order of initialization

Reimplemented from oofem::FEMComponent.

Reimplemented in oofem::HydratingHeMoMaterial.

Definition at line 52 of file hemotkmat.C.

References _IFT_HeMoTKMaterial_a, _IFT_HeMoTKMaterial_a_0, _IFT_HeMoTKMaterial_c, _IFT_HeMoTKMaterial_chi_eff, _IFT_HeMoTKMaterial_delta_wet, _IFT_HeMoTKMaterial_latent, _IFT_HeMoTKMaterial_n, _IFT_HeMoTKMaterial_nn, _IFT_HeMoTKMaterial_phi_c, _IFT_HeMoTKMaterial_por, _IFT_HeMoTKMaterial_rho, _IFT_HeMoTKMaterial_rho_gws, _IFT_HeMoTKMaterial_w_h, a, a_0, c, chi_eff, delta_wet, IR_GIVE_FIELD, latent, n, nn, phi_c, por, rho, rho_gws, and w_h.

◆ inverse_sorption_isotherm()

double oofem::HeMoTKMaterial::inverse_sorption_isotherm ( double w) const

◆ isCharacteristicMtrxSymmetric()

bool oofem::HeMoTKMaterial::isCharacteristicMtrxSymmetric ( MatResponseMode rMode) const
overridevirtual

Returns true if stiffness matrix of receiver is symmetric Default implementation returns true.

Reimplemented from oofem::Material.

Definition at line 352 of file hemotkmat.C.

References OOFEM_ERROR.

◆ perm_wt()

double oofem::HeMoTKMaterial::perm_wt ( double w,
double t ) const
protected

Definition at line 198 of file hemotkmat.C.

References give_delta_gw(), give_dpgw_dt(), and inverse_sorption_isotherm().

Referenced by computeHeMoFlux3D(), and computeTangent3D().

◆ perm_ww()

double oofem::HeMoTKMaterial::perm_ww ( double w,
double t ) const
protected

◆ sorption_isotherm()

double oofem::HeMoTKMaterial::sorption_isotherm ( double phi) const

Definition at line 229 of file hemotkmat.C.

References a, n, OOFEM_ERROR, and w_h.

Member Data Documentation

◆ a

double oofem::HeMoTKMaterial::a = 0.
protected

Constant (obtained from experiments) [Pedersen, 1990].

Definition at line 76 of file hemotkmat.h.

Referenced by give_dphi_dw(), initializeFrom(), inverse_sorption_isotherm(), and sorption_isotherm().

◆ a_0

double oofem::HeMoTKMaterial::a_0 = 0.
protected

Constant (obtained from experiments) [Bazant and Najjar, 1972].

Definition at line 69 of file hemotkmat.h.

Referenced by give_delta_gw(), and initializeFrom().

◆ c

double oofem::HeMoTKMaterial::c = 0.
protected

Thermal capacity.

Definition at line 79 of file hemotkmat.h.

Referenced by get_ceff(), and initializeFrom().

◆ chi_eff

double oofem::HeMoTKMaterial::chi_eff = 0.
protected

Effective thermal conductivity.

Definition at line 81 of file hemotkmat.h.

Referenced by get_chi(), and initializeFrom().

◆ delta_wet

double oofem::HeMoTKMaterial::delta_wet = 0.
protected

Constant-water vapor permeability (obtained from experiments) [Bazant and Najjar, 1972].

Definition at line 72 of file hemotkmat.h.

Referenced by give_delta_gw(), and initializeFrom().

◆ latent

double oofem::HeMoTKMaterial::latent = 0.
protected

Latent heat of evaporation.

Definition at line 78 of file hemotkmat.h.

Referenced by get_latent(), and initializeFrom().

◆ n

double oofem::HeMoTKMaterial::n = 0.
protected

Constant-exponent (obtained from experiments) [Pedersen, 1990].

Definition at line 75 of file hemotkmat.h.

Referenced by give_dphi_dw(), HeMoTKMaterial(), oofem::HydratingHeMoMaterial::HydratingHeMoMaterial(), initializeFrom(), inverse_sorption_isotherm(), and sorption_isotherm().

◆ nn

double oofem::HeMoTKMaterial::nn = 0.
protected

Constant-exponent (obtained from experiments) [Bazant and Najjar, 1972].

Definition at line 70 of file hemotkmat.h.

Referenced by give_delta_gw(), and initializeFrom().

◆ phi_c

double oofem::HeMoTKMaterial::phi_c = 0.
protected

Constant-relative humidity (obtained from experiments) [Bazant and Najjar, 1972].

Definition at line 71 of file hemotkmat.h.

Referenced by give_delta_gw(), and initializeFrom().

◆ por

double oofem::HeMoTKMaterial::por = 0.
protected

Porosity.

Definition at line 83 of file hemotkmat.h.

Referenced by get_b(), and initializeFrom().

◆ rho

double oofem::HeMoTKMaterial::rho = 0.
protected

Volume density.

Definition at line 80 of file hemotkmat.h.

Referenced by computeCapacityCoeff(), get_ceff(), and initializeFrom().

◆ rho_gws

double oofem::HeMoTKMaterial::rho_gws = 0.
protected

Saturation volume density.

Definition at line 84 of file hemotkmat.h.

Referenced by get_b(), and initializeFrom().

◆ w_h

double oofem::HeMoTKMaterial::w_h = 0.
protected

Constant water content (obtained from experiments) [Pedersen, 1990].

Definition at line 74 of file hemotkmat.h.

Referenced by give_dphi_dw(), initializeFrom(), inverse_sorption_isotherm(), and sorption_isotherm().


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