muMECH  1.0
selfBalanceAlgorithm.h
Go to the documentation of this file.
1 //********************************************************************************************************
2 // code: ### ### ##### #### ## ##
3 // ## ## ######## ## ## ## ## ##
4 // ## ## ## ## ## ### ## ######
5 // ## ## ## ## ## ## ## ## ##
6 // ##### ## ## ##### #### ## ##
7 // ##
8 //
9 // name: selfBalanceAlgorithm.h
10 // author(s): Jan Novak
11 // language: C, C++
12 // license: This program is free software; you can redistribute it and/or modify
13 // it under the terms of the GNU Lesser General Public License as published by
14 // the Free Software Foundation; either version 2 of the License, or
15 // (at your option) any later version.
16 //
17 // This program is distributed in the hope that it will be useful,
18 // but WITHOUT ANY WARRANTY; without even the implied warranty of
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 // GNU Lesser General Public License for more details.
21 //
22 // You should have received a copy of the GNU Lesser General Public License
23 // along with this program; if not, write to the Free Software
24 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 //********************************************************************************************************
33 #ifndef MUMECH_SELF_BALANCE_ALGORITHMS_H
34 #define MUMECH_SELF_BALANCE_ALGORITHMS_H
35 
36 //included libraries
37 #include "inclusion.h"
38 #include "types.h"
39 #include "matrix.h"
40 
41 
42 namespace mumech {
43 
44 //selfBalanceAlgorithm class declaration
46 {
47  public:
52 
53  //******************************************************************************************************
54  // Function gives the total transformation strain field in inclusion centroids regarding
55  // the presence of other adjacent inlusion.
57 
58 
59  protected:
60 
61  //******************************************************************************************************
62  // Protected variables
63 
64  //******************************************************************************************************
65  // Function gives the quadratic norm of multiple eigenstrain vectors calculated
66  // from strain perturbation values
67  // double giveQuadNormMultEigstrain( Point * point, double * oldStrain, int n );
68 
69  //******************************************************************************************************
70  // Function copies strain perturbatios in inclusion origins into an auxiliary vector:
71  //void copyPertStrainsToAuxVect(Point *point, double * auxVect, int n );
72 
73  //******************************************************************************************************
74  // Function copies total global eigenstrains from InclRecord to an auxiliary vector:
75  // auxVect '@n x 6' ... this is number of vector entries
76  static void copyGlobTotalEigStrainsToAuxVector (InclusionRecord3D **inclRec, double *auxVect, int n);
77 
78  //******************************************************************************************************
79  // Function gives the quadratic norm of multiple eigenstrain vectors calculated
80  // from total global eigenstrain values.
81  static double giveQuadNormMultEigstrain (InclusionRecord3D **inclRec, double *oldStrain, int n);
82 
83  //******************************************************************************************************
84  // Function copies total global eigenstrain in inclusion origins into an auxiliary vector:
85  static void copyGlobTotEigStrainsToAuxVect (InclusionRecord3D **inclRec, double * auxVect, int n );
86 
87  //******************************************************************************************************
88  // Function updates total local eigenstrains from their total global counterparts
89  static void localEigStrainUpdateTotal (mumech::InclusionRecord3D **inclRec, int n );
90 
91  //******************************************************************************************************
92  // Function prints resulting total transformation strains in inclusion centroids
93  static void printTotEigenStrains (InclusionRecord3D **inclRec, int n, const char * notice );
94 
95 
96 }; // end of class declaration
97 
98 } // end of namespace mumech
99 
100 #endif
101 
102 /*end of file*/
static double giveQuadNormMultEigstrain(InclusionRecord3D **inclRec, double *oldStrain, int n)
Function gives the quadratic norm of multiple eigenstrain vectors calculated from total global eigens...
file of various types and symbolic constant definitions
Problem description.
Definition: problem.h:154
static void copyGlobTotalEigStrainsToAuxVector(InclusionRecord3D **inclRec, double *auxVect, int n)
Function copies total global eigenstrains from InclRecord to an auxiliary vector: auxVect = 'n x 6' ...
static void totalEigStrainInInclCentroidsUpdate(Problem *p)
Function gives the total transformation strain field in inclusion centroids regarding the presence of...
3D inclusion record.
Definition: inclusion.h:278
Class inclusion contains and handles all inclusion data.
selfBalanceAlgorithm(void)
Constructor.
Class MatrixRecord.
static void localEigStrainUpdateTotal(mumech::InclusionRecord3D **inclRec, int n)
static void copyGlobTotEigStrainsToAuxVect(InclusionRecord3D **inclRec, double *auxVect, int n)
static void printTotEigenStrains(InclusionRecord3D **inclRec, int n, const char *notice)