61 OOFEM_ERROR (
"permeabilityType must be equal to 0, 1, 2, 3" );
70 OOFEM_ERROR (
"capillaryTransportType must be equal to 0, 1, 2" );
81 OOFEM_WARNING(
"the size of 'iso_h' and 'iso_w(h)' must be the same");
130 OOFEM_WARNING(
"the size of 'perm_h' and 'perm_c(h)' must be the same");
162 double timeScale = 1.;
164 delta = timeScale * 2.0 * 1.e-7 * pow(T,0.81) / PL;
166 this->
deltap = delta / mu;
170 double T_C = T - 273.15;
179 this->
p_sat = 611. * exp( a * T_C / (T0 + T_C) );
187 OOFEM_ERROR (
"size of 'capPerm_h' and 'capPerm_dw(h)' must be the same" );
191 OOFEM_ERROR (
"capPerm_h must be in the range <0; 1>" );
203 OOFEM_ERROR (
"size of 'capPerm_wV' and 'capPerm_Dw(wV)' must be the same" );
207 OOFEM_ERROR (
"capPerm_wv must be in the range <0; 1>" );
237 if ( ( humidity -
iso_h.
at(i) ) < tol ) {
242 return 1. / (
dd * ( 1. - humidity ) );
244 return wf * (
b - 1. ) *
b / ( (
b - humidity ) * (
b - humidity ) );
246 return rhodry *
uh / (
A *
nn * humidity * pow( ( 1 - log(humidity) /
A ), ( 1 /
nn + 1 ) ) );
248 double nominator, denominator;
249 nominator =
c *
k *
Vm *
rhodry * ( 1. +
k *
k * humidity * humidity *
c -
k *
k * humidity * humidity );
250 denominator = ( 1. -
k * humidity ) * ( 1. -
k * humidity ) * ( 1. + (
c - 1. ) *
k * humidity ) * ( 1. + (
c - 1. ) *
k * humidity );
251 return nominator / denominator;
253 if( humidity <= (
hx-
dx) ) {
255 }
else if (humidity >= (
hx +
dx) ) {
276 if ( ( humidity -
iso_h.
at(i) ) < tol ) {
282 return wf - log(1.-humidity)/
dd ;
285 return wf * (
b-1.) * humidity / (
b-humidity);
288 return rhodry*
uh * pow( (1.-log(humidity)/
A), (-1./
nn) ) ;
291 return rhodry*
c*
k*
Vm*humidity/( (1.-
k*humidity) * (
c-1.)*
k*humidity );
295 if( humidity <= (
hx-
dx) ) {
298 }
else if (humidity >= (
hx +
dx) ) {
315 double permeability = 0.;
321 if ( ( humidity -
perm_h.
at(i) ) < tol ) {
327 permeability =
C1 * (
alpha0 + ( 1. -
alpha0 ) / ( 1. + pow( ( 1. - humidity ) / ( 1. -
hC ),
n ) ) );
329 double power = pow( 10.,
gammah * ( humidity - 1. ) );
330 permeability =
alphah +
betah * ( 1. - pow(2., -power) );
390 if ( ( tempState.
at(1) > 1.0 ) || ( tempState.
at(1) < 0.0 ) ) {
391 OOFEM_ERROR(
"Relative humidity %.3f is out of range", tempState.
at(1) );
394 return tempState.
at(1);
#define _IFT_NlIsoMoistureMaterial_n
#define _IFT_NlIsoMoistureMaterial_capperm_wv
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
Returns material status of receiver in given integration point.
#define _IFT_NlIsoMoistureMaterial_t
double c
parameters of the BSB isotherm
FloatArray capPerm_h
values of the multilinear capillary transport function
#define _IFT_NlIsoMoistureMaterial_c
#define _IFT_NlIsoMoistureMaterial_c1
double & at(int i)
Coefficient access function.
FloatArray perm_h
values of the multilinear permeability
enum oofem::NlIsoMoistureMaterial::isothermType Isotherm
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
#define _IFT_NlIsoMoistureMaterial_vm
double deltap
permeability parameters according to Kunzel
double wf
parameters of the Kuenzel isotherm
#define _IFT_NlIsoMoistureMaterial_perm_h
#define _IFT_NlIsoMoistureMaterial_betah
#define _IFT_NlIsoMoistureMaterial_nn
#define _IFT_NlIsoMoistureMaterial_iso_wh
virtual double giveHumidity(GaussPoint *gp, ValueModeType mode)
Returns positive value of humidity if implemented and enabled in derived material, -1 otherwise.
double alphah
permeability parameters according to Xi, Bazant & Jennings
#define _IFT_NlIsoMoistureMaterial_timescale
This class implements a transport material status information.
enum oofem::NlIsoMoistureMaterial::permeabilityType Permeability
#define _IFT_NlIsoMoistureMaterial_alphah
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
#define _IFT_NlIsoMoistureMaterial_rhoh2o
double dd
parameters of the Ricken isotherm
double hx
values of the bilinear isotherm
#define _IFT_NlIsoMoistureMaterial_perm_ch
#define _IFT_NlIsoMoistureMaterial_iso_h
#define _IFT_NlIsoMoistureMaterial_rhodry
#define _IFT_NlIsoMoistureMaterial_b
#define _IFT_NlIsoMoistureMaterial_gammah
#define _IFT_NlIsoMoistureMaterial_alpha0
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
double C1
"permeability" according to Bazant
#define _IFT_NlIsoMoistureMaterial_capa
enum oofem::NlIsoMoistureMaterial::capillaryTransportType CapillaryTransport
double Abs
water absorption coefficient [kg m^-2 s^-0.5]
#define _IFT_NlIsoMoistureMaterial_a
#define _IFT_NlIsoMoistureMaterial_hx
#define _IFT_NlIsoMoistureMaterial_dx
#define _IFT_NlIsoMoistureMaterial_pl
Class representing vector of real numbers.
#define _IFT_NlIsoMoistureMaterial_hc
double moistureCapacity
values of the linear isotherm
#define _IFT_NlIsoMoistureMaterial_abs
IRResultType
Type defining the return values of InputRecord reading operations.
#define _IFT_NlIsoMoistureMaterial_capperm_h
#define _IFT_NlIsoMoistureMaterial_dd
#define _IFT_NlIsoMoistureMaterial_mu
FloatArray iso_h
values of the multilinear isotherm
double rhodry
density of the dry solid phase
#define _IFT_NlIsoMoistureMaterial_wf
virtual double givePermeability(GaussPoint *gp, TimeStep *tStep)
#define _IFT_NlIsoMoistureMaterial_iso_offset
#define _IFT_NlIsoMoistureMaterial_capperm_dwh
double uh
parameters of the isotherm proposed by P. Freiesleben Hansen (Coupled moisture/heat transport in cros...
#define _IFT_NlIsoMoistureMaterial_capillarytransporttype
#define _IFT_NlIsoMoistureMaterial_uh
#define _IFT_NlIsoMoistureMaterial_isothermtype
REGISTER_Material(DummyMaterial)
virtual double sorptionIsotherm(double humidity)
#define _IFT_NlIsoMoistureMaterial_capperm_dwwv
int giveSize() const
Returns the size of receiver.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual double giveMoistureCapacity(GaussPoint *gp, TimeStep *tStep)
evaluates slope of the sorption isotherm
#define _IFT_NlIsoMoistureMaterial_k
virtual double computeCapTranspCoeff(double humidity)
Class representing integration point in finite element program.
#define OOFEM_WARNING(...)
Class representing solution step.
#define _IFT_NlIsoMoistureMaterial_permeabilitytype