OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
hemobaznajmat.h
Go to the documentation of this file.
1 /*
2  *
3  * ##### ##### ###### ###### ### ###
4  * ## ## ## ## ## ## ## ### ##
5  * ## ## ## ## #### #### ## # ##
6  * ## ## ## ## ## ## ## ##
7  * ## ## ## ## ## ## ## ##
8  * ##### ##### ## ###### ## ##
9  *
10  *
11  * OOFEM : Object Oriented Finite Element Code
12  *
13  * Copyright (C) 1993 - 2013 Borek Patzak
14  *
15  *
16  *
17  * Czech Technical University, Faculty of Civil Engineering,
18  * Department of Structural Mechanics, 166 29 Prague, Czech Republic
19  *
20  * This library is free software; you can redistribute it and/or
21  * modify it under the terms of the GNU Lesser General Public
22  * License as published by the Free Software Foundation; either
23  * version 2.1 of the License, or (at your option) any later version.
24  *
25  * This program is distributed in the hope that it will be useful,
26  * but WITHOUT ANY WARRANTY; without even the implied warranty of
27  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
28  * Lesser General Public License for more details.
29  *
30  * You should have received a copy of the GNU Lesser General Public
31  * License along with this library; if not, write to the Free Software
32  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
33  */
34 
35 #ifndef hemobaznajmat_h
36 #define hemobaznajmat_h
37 
38 #include "transportmaterial.h"
39 
41 
42 #define _IFT_HeMoBazNajMaterial_Name "hemobaznajmat"
43 #define _IFT_HeMoBazNajMaterial_c1 "c1"
44 #define _IFT_HeMoBazNajMaterial_n "n"
45 #define _IFT_HeMoBazNajMaterial_alpha0 "alpha0"
46 #define _IFT_HeMoBazNajMaterial_hc "hc"
47 #define _IFT_HeMoBazNajMaterial_capa "capa"
48 #define _IFT_HeMoBazNajMaterial_k "k"
49 #define _IFT_HeMoBazNajMaterial_c "c"
50 
51 
52 namespace oofem {
56 {
57 protected:
58 
61 
63  double C1;
65  double n;
67  double alpha0;
69  double hC;
70 
72  double heatCapacity;
73 
74 
75 public:
76 
84  virtual ~HeMoBazNajMaterial() { }
85 
86  virtual void giveFluxVector(FloatArray &answer, GaussPoint *gp, const FloatArray &grad, const FloatArray &field, TimeStep *tStep);
87 
88  virtual void giveCharacteristicMatrix(FloatMatrix &answer,
89  MatResponseMode mode,
90  GaussPoint *gp,
91  TimeStep *atTime);
92 
93  virtual double giveCharacteristicValue(MatResponseMode mode,
94  GaussPoint *gp,
95  TimeStep *atTime);
96 
98 
100 
101  virtual double give(int aProperty, GaussPoint *gp);
102 
103  virtual int hasMaterialModeCapability(MaterialMode mode);
104 
105  // identification
106  virtual const char *giveInputRecordName() const { return _IFT_HeMoBazNajMaterial_Name; }
107  virtual const char *giveClassName() const { return "HeMoBazNajMaterial"; }
108 
109 protected:
110  void computeConductivityMtrx(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *atTime);
111  void matcond1d(FloatMatrix &d, GaussPoint *gp, MatResponseMode mode, TimeStep *atTime);
112  void matcond2d(FloatMatrix &d, GaussPoint *gp, MatResponseMode mode, TimeStep *atTime);
113  void matcond3d(FloatMatrix &d, GaussPoint *gp, MatResponseMode mode, TimeStep *atTime);
114 
115  double computeCapacityCoeff(MatResponseMode mode, GaussPoint *gp, TimeStep *atTime);
116 
117  double perm_mm(double h, double T);
118  double perm_mh(double h, double T);
119  double perm_hm(double h, double T);
120  double perm_hh(double h, double T);
121 
122 
123  // post-processing, poi export
124  virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *atTime);
125 };
126 } // end namespace oofem
127 #endif // hemobaznajmat_h
virtual bool isCharacteristicMtrxSymmetric(MatResponseMode rMode)
Returns true if stiffness matrix of receiver is symmetric Default implementation returns true...
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
double heatConductivity
Conductivity (k in input file).
Definition: hemobaznajmat.h:71
double hC
nonlinear threshold [-]
Definition: hemobaznajmat.h:69
Class and object Domain.
Definition: domain.h:115
double perm_mh(double h, double T)
void matcond3d(FloatMatrix &d, GaussPoint *gp, MatResponseMode mode, TimeStep *atTime)
double computeCapacityCoeff(MatResponseMode mode, GaussPoint *gp, TimeStep *atTime)
double C1
maximal permeability [kg/ m s]
Definition: hemobaznajmat.h:63
void matcond2d(FloatMatrix &d, GaussPoint *gp, MatResponseMode mode, TimeStep *atTime)
MaterialMode
Type representing material mode of integration point.
Definition: materialmode.h:89
HeMoBazNajMaterial(int n, Domain *d)
Constructor.
Definition: hemobaznajmat.h:82
MatResponseMode
Describes the character of characteristic material matrix.
double heatCapacity
Capacity (c in input file).
Definition: hemobaznajmat.h:72
virtual const char * giveInputRecordName() const
double n
exponent in nonlinear permeability function [-]
Definition: hemobaznajmat.h:65
virtual ~HeMoBazNajMaterial()
Destructor.
Definition: hemobaznajmat.h:84
#define _IFT_HeMoBazNajMaterial_Name
Definition: hemobaznajmat.h:42
double perm_mm(double h, double T)
virtual double giveCharacteristicValue(MatResponseMode mode, GaussPoint *gp, TimeStep *atTime)
Computes the characteristic value of receiver in given integration point, respecting its history...
void computeConductivityMtrx(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *atTime)
double perm_hm(double h, double T)
double alpha0
fraction minimal/maximal permeability [-]
Definition: hemobaznajmat.h:67
Class representing vector of real numbers.
Definition: floatarray.h:82
virtual double give(int aProperty, GaussPoint *gp)
Returns the value of material property 'aProperty'.
Definition: hemobaznajmat.C:77
void matcond1d(FloatMatrix &d, GaussPoint *gp, MatResponseMode mode, TimeStep *atTime)
Implementation of matrix containing floating point numbers.
Definition: floatmatrix.h:94
double perm_hh(double h, double T)
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *atTime)
Returns the integration point corresponding value in Reduced form.
Class representing the general Input Record.
Definition: inputrecord.h:101
virtual int hasMaterialModeCapability(MaterialMode mode)
Tests if material supports material mode.
Definition: hemobaznajmat.C:46
Abstract base class for all constitutive models for transport problems.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Definition: hemobaznajmat.C:57
virtual const char * giveClassName() const
double moistureCapacity
sorption isotherm derivative [kg/m^3]
Definition: hemobaznajmat.h:60
the oofem namespace is to define a context or scope in which all oofem names are defined.
Class representing integration point in finite element program.
Definition: gausspoint.h:93
Class representing solution step.
Definition: timestep.h:80
virtual void giveFluxVector(FloatArray &answer, GaussPoint *gp, const FloatArray &grad, const FloatArray &field, TimeStep *tStep)
Returns the flux for the field and its gradient.
Definition: hemobaznajmat.C:88
virtual void giveCharacteristicMatrix(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *atTime)
Computes characteristic matrix of receiver in given integration point.

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:29 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011