OOFEM 3.0
Loading...
Searching...
No Matches
homogenize.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 homogenize_h
36#define homogenize_h
37
38#include "oofemenv.h"
39#include "floatarray.h"
40#include "floatmatrix.h"
41#include "error.h"
42
43namespace oofem {
49
51{
52public:
53
55 Homogenize();
56
58 ~Homogenize(void) { }
59
63 void voigt(FloatMatrix &PhaseMatrix);
64
68 void reuss(FloatMatrix &PhaseMatrix);
69
74 void hashinShtrikmanWalpole(FloatMatrix &PhaseMatrix);
75
80 void moriTanaka(FloatMatrix &PhaseMatrix, int refRow);
81
85 void selfConsistent(FloatMatrix &PhaseMatrix);
86
90 void herveZaoui(FloatMatrix &PhaseMatrix);
91
96 void hirsch(FloatMatrix &PhaseMatrix, double chi);
97
101 void hansen(FloatMatrix &PhaseMatrix);
102
106 void counto(FloatMatrix &PhaseMatrix);
107
111 void kusterToksoz(FloatMatrix &PhaseMatrix);
112
116 void printYourself(int out = 0);
117
119 void ENuToKMu(const double E, const double nu, double &k, double &mu);
120
122 void kMuToENu(const double k, const double mu, double &E, double &nu);
123
125 double E_hmg;
126
128 double E_hmg_2;
129
131 double nu_hmg;
132
134 double nu_hmg_2;
135
137 double k_hmg;
138
140 double k_hmg_2;
141
143 double mu_hmg;
144
146 double mu_hmg_2;
147
148private:
150 double lambda(double *PhaseMatrixKMu, int NumRows, double mu);
151
153 double zeta(double k, double mu);
154
156 double gamma(FloatMatrix &SortedPhaseMatrix, double zeta);
157
161 void checkVolFraction(FloatMatrix &PhaseMatrix);
162
164 void fillJ(FloatMatrix &J, double r, const FloatArray &mu, const FloatArray &k, int phase);
165
167 void fillL(FloatMatrix &L, double r, const FloatArray &mu, const FloatArray &k, int phase);
168};
169} // end namespace oofem
170#endif // homogenize_h
#define E(a, b)
void fillL(FloatMatrix &L, double r, const FloatArray &mu, const FloatArray &k, int phase)
Auxiliary function for Herve-Zaoui scheme.
Definition homogenize.C:742
double E_hmg_2
Upper bound of Young's modulus if applicable.
Definition homogenize.h:128
double gamma(FloatMatrix &SortedPhaseMatrix, double zeta)
Auxiliary function.
Definition homogenize.C:705
double mu_hmg
Effective shear modulus or the lower bound.
Definition homogenize.h:143
double zeta(double k, double mu)
Auxiliary function for Hashin-Shtrikman bounds.
Definition homogenize.C:699
double lambda(double *PhaseMatrixKMu, int NumRows, double mu)
Auxiliary function.
double nu_hmg
Effective Poisson's ratio.
Definition homogenize.h:131
double mu_hmg_2
Upper shear modulus if applicable.
Definition homogenize.h:146
double nu_hmg_2
Effective Poisson's ratio or the lower bound.
Definition homogenize.h:134
double k_hmg_2
Upper bound of bulk modulus if applicable.
Definition homogenize.h:140
double E_hmg
Effective Young's modulus or the lower bound.
Definition homogenize.h:125
void fillJ(FloatMatrix &J, double r, const FloatArray &mu, const FloatArray &k, int phase)
Auxiliary function for Herve-Zaoui scheme.
Definition homogenize.C:733
Homogenize()
Constructor.
Definition homogenize.C:39
void checkVolFraction(FloatMatrix &PhaseMatrix)
Definition homogenize.C:719
~Homogenize(void)
Destructor.
Definition homogenize.h:58
double k_hmg
Effective bulk modulus or the lower bound.
Definition homogenize.h:137
#define OOFEM_EXPORT
Definition oofemcfg.h:7

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