OOFEM 3.0
Loading...
Searching...
No Matches
latticetransmat.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 - 2025 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 latticetransmat_h
36#define latticetransmat_h
37
39#include "dictionary.h"
40#include "floatarrayf.h"
41#include "floatmatrixf.h"
42#include "cltypes.h"
43#include "matstatus.h"
44
46
47#define _IFT_LatticeTransportMaterial_Name "latticetransmat"
48#define _IFT_LatticeTransportMaterial_vis "vis"
49#define _IFT_LatticeTransportMaterial_k "k"
50#define _IFT_LatticeTransportMaterial_thetas "thetas"
51#define _IFT_LatticeTransportMaterial_thetar "thetar"
52#define _IFT_LatticeTransportMaterial_contype "contype"
53#define _IFT_LatticeTransportMaterial_m "m"
54#define _IFT_LatticeTransportMaterial_a "a"
55#define _IFT_LatticeTransportMaterial_thetam "thetam"
56#define _IFT_LatticeTransportMaterial_paev "paev"
57#define _IFT_LatticeTransportMaterial_ctor "ctor"
58#define _IFT_LatticeTransportMaterial_clim "clim"
59#define _IFT_LatticeTransportMaterial_c "c"
61
62namespace oofem {
67{
68protected:
70 double mass = 0.;
71 double oldPressure = 0.;
72
73public:
76
77 void printOutputAt(FILE *, TimeStep *) const override;
78
80 double givePressure() const { return field; }
81
82 double giveOldPressure() const { return oldPressure; }
83
85 void setMass(double input) { this->mass = input; }
86
88 double giveMass() const { return this->mass; }
89
90 void updateYourself(TimeStep *tStep) override;
91
92 void initTempStatus() override;
93
94 const char *giveClassName() const override { return "LatticeTransportMaterialStatus"; }
95};
96
101{
102protected:
104 double viscosity = 0.;
105
107 double paramM = 0.;
108
110 double paramA = 0.;
111
113 double permeability = 0.;
114
116 double porosity = 0.;
117
119 double density = 0.;
120
122 int conType = 0;
123
125 int capacity = 0;
126
128 double thetaS = 0.;
129
131 double thetaR = 0.;
132
134 double thetaM = 0.;
135
137 double crackTortuosity = 0.;
138
140 double crackLimit = 0.;
141
143 double suctionAirEntry = 0.;
144
145
146public:
148
149 void initializeFrom(InputRecord &ir) override;
150
151 FloatArrayF< 3 >computeFlux3D(const FloatArrayF< 3 > &grad, double field, GaussPoint *gp, TimeStep *tStep) const override;
152
153 FloatMatrixF< 3, 3 >computeTangent3D(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override { return {}; }
154
155 double giveCharacteristicValue(MatResponseMode mode,
156 GaussPoint *gp,
157 TimeStep *tStep) const override;
158
165 double computeConductivity(double suction, GaussPoint *gp, TimeStep *tStep) const;
166
172 double computeCapacity(double suction, GaussPoint *gp) const;
173
179
180 double computeMass(FloatArray &stateVector, GaussPoint *gp) const;
181
182 const char *giveInputRecordName() const override { return _IFT_LatticeTransportMaterial_Name; }
183 const char *giveClassName() const override { return "LatticeTransportMaterial"; }
184
185 double give(int, GaussPoint *gp) const override;
186
187 std::unique_ptr<MaterialStatus> CreateStatus(GaussPoint *gp) const override;
188};
189} // end namespace oofem
190#endif
void setMass(double input)
Sets the mass.
void printOutputAt(FILE *, TimeStep *) const override
Print receiver's output to given stream.
LatticeTransportMaterialStatus(GaussPoint *g)
Constructor.
double mass
Liquid mass in element.
double giveMass() const
Returns mass.
const char * giveClassName() const override
double givePressure() const
Returns pressure.
void updateYourself(TimeStep *tStep) override
double computeCapacity(double suction, GaussPoint *gp) const
const char * giveInputRecordName() const override
double giveCharacteristicValue(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
LatticeTransportMaterial(int n, Domain *d)
double permeability
Intrinsic permeability of porous material.
double thetaR
Residual water content.
int conType
Type of conductivity and capcity laws.
double thetaS
Relative saturated water content.
double thetaM
Modified water content.
FloatMatrixF< 3, 3 > computeTangent3D(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
double suctionAirEntry
Suction air entry value.
double give(int, GaussPoint *gp) const override
double density
Density of fluid.
int capacity
Type of conductivity and capcity laws.
double paramM
Parameter of van Genuchten law.
void initializeFrom(InputRecord &ir) override
double porosity
Porosity of porous material.
double viscosity
Viscosity of fluid.
double paramA
Parameter of van Genuchten law.
FloatArrayF< 3 > computeFlux3D(const FloatArrayF< 3 > &grad, double field, GaussPoint *gp, TimeStep *tStep) const override
double computeConductivity(double suction, GaussPoint *gp, TimeStep *tStep) const
const char * giveClassName() const override
double computeMass(FloatArray &stateVector, GaussPoint *gp) const
double crackTortuosity
Crack tortuosity.
double field
General field (temperature, concentration, etc.).
TransportMaterial(int n, Domain *d)
#define _IFT_LatticeTransportMaterial_Name

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