OOFEM 3.0
Loading...
Searching...
No Matches
rvestokesflow.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 rvestokesflow_h
36#define rvestokesflow_h
37
38#ifdef __FM_MODULE
39
40#include "floatarrayf.h"
41#include "floatmatrixf.h"
42#include "transportmaterial.h"
44
45#include <memory>
46
47#define _IFT_RVEStokesFlow_Name "rvestokesflow"
48#define _IFT_RVEStokesFlow_fileName "file"
49#define _IFT_RVEStokesFlow_bctype "bctype"
50
51namespace oofem {
59{
60protected:
62 std :: unique_ptr< StokesFlowVelocityHomogenization > rve;
63
64public:
65 RVEStokesFlowMaterialStatus(int n, int rank, GaussPoint * g, const std :: string &inputfile);
66
67 void setTimeStep(TimeStep *tStep);
68
69 void initTempStatus() override;
70
71 void updateYourself(TimeStep *tStep) override;
72
73 void saveContext(DataStream &stream, ContextMode mode) override;
74 void restoreContext(DataStream &stream, ContextMode mode) override;
75
79
81
83
84 const char *giveClassName() const override { return "RVEStokesFlowMaterialStatus"; }
85};
86
87
99{
100private:
101 static int n;
102 std :: string rveFilename;
103 std :: string rveLogFilename;
104
105public:
106 RVEStokesFlow(int n, Domain * d);
107
108 void initializeFrom(InputRecord &ir) override;
109
110 FloatArrayF<3> computeFlux3D(const FloatArrayF<3> &grad, double field, GaussPoint *gp, TimeStep *tStep) const override;
111 FloatMatrixF<3,3> computeTangent3D(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override;
112
113 double giveCharacteristicValue(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override { return 0.0; }
114
115 std::unique_ptr<MaterialStatus> CreateStatus(GaussPoint *gp) const override;
116
117 int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override;
118
119 const char *giveClassName() const override { return "RVEStokesFlow"; }
120 const char *giveInputRecordName() const override { return _IFT_RVEStokesFlow_Name; }
121};
122}
123
124#endif // ifdef __FM_MODULE
125#endif // rvestokesflow_h
void saveContext(DataStream &stream, ContextMode mode) override
const char * giveClassName() const override
FloatMatrixF< 3, 3 > temp_TangentMatrix
void setTimeStep(TimeStep *tStep)
const FloatMatrixF< 3, 3 > & giveTempTangentMatrix() const
RVEStokesFlowMaterialStatus(int n, int rank, GaussPoint *g, const std ::string &inputfile)
FloatMatrixF< 3, 3 > tangentMatrix
StokesFlowVelocityHomogenization * giveRVE()
void restoreContext(DataStream &stream, ContextMode mode) override
void letTempTangentMatrixBe(const FloatMatrixF< 3, 3 > &K)
void updateYourself(TimeStep *tStep) override
const FloatMatrixF< 3, 3 > & giveTangentMatrix() const
std ::unique_ptr< StokesFlowVelocityHomogenization > rve
const char * giveInputRecordName() const override
FloatMatrixF< 3, 3 > computeTangent3D(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
void initializeFrom(InputRecord &ir) override
std::string rveLogFilename
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
FloatArrayF< 3 > computeFlux3D(const FloatArrayF< 3 > &grad, double field, GaussPoint *gp, TimeStep *tStep) const override
RVEStokesFlow(int n, Domain *d)
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
double giveCharacteristicValue(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
const char * giveClassName() const override
TransportMaterial(int n, Domain *d)
long ContextMode
Definition contextmode.h:43
#define _IFT_RVEStokesFlow_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