OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
zznodalrecoverymodel.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 zznodalrecoverymodel_h
36 #define zznodalrecoverymodel_h
37 
38 #include "nodalrecoverymodel.h"
39 #include "interface.h"
40 
41 #define _IFT_ZZNodalRecoveryModel_Name "zz"
42 
43 namespace oofem {
44 class GaussPoint;
45 class ZZNodalRecoveryModelInterface;
46 class ProcessCommunicator;
47 
54 class OOFEM_EXPORT ZZNodalRecoveryModel : public NodalRecoveryModel
55 {
56 protected:
61  struct parallelStruct {
66  lhs(a), rhs(b), regionNodalNumbers(c) { }
67  };
68 
69 public:
73  virtual ~ZZNodalRecoveryModel();
74 
75  virtual int recoverValues(Set elementSet, InternalStateType type, TimeStep *tStep);
76 
77  virtual const char *giveClassName() const { return "ZZNodalRecoveryModel"; }
78 
79 private:
86  void initRegionMap(IntArray &regionMap, InternalStateType type);
87 
88 #ifdef __PARALLEL_MODE
89  void initCommMaps();
90  void exchangeDofManValues(FloatArray &lhs, FloatMatrix &rhs, IntArray &rn);
91  int packSharedDofManData(parallelStruct *s, ProcessCommunicator &processComm);
92  int unpackSharedDofManData(parallelStruct *s, ProcessCommunicator &processComm);
93 #endif
94 };
95 
99 class OOFEM_EXPORT ZZNodalRecoveryModelInterface : public Interface
100 {
101 private:
103 
104 public:
106  ZZNodalRecoveryModelInterface(Element *element): element(element) { }
107 
109 
110 
119  virtual bool ZZNodalRecoveryMI_computeNValProduct(FloatMatrix &answer, InternalStateType type, TimeStep *tStep);
126  virtual void ZZNodalRecoveryMI_computeNNMatrix(FloatArray &answer, InternalStateType type);
128 };
129 } // end namespace oofem
130 #endif // zznodalrecoverymodel_h
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
Class and object Domain.
Definition: domain.h:115
The element interface required by ZZNodalRecoveryModel.
ZZNodalRecoveryModelInterface(Element *element)
Constructor.
Abstract base class for all finite elements.
Definition: element.h:145
Helper structure to pass required arguments to packing/unpacking functions needed in parallel mode...
Class implementing an array of integers.
Definition: intarray.h:61
Set of elements, boundaries, edges and/or nodes.
Definition: set.h:66
Class representing process communicator for engineering model.
Definition: processcomm.h:176
Class representing vector of real numbers.
Definition: floatarray.h:82
Implementation of matrix containing floating point numbers.
Definition: floatmatrix.h:94
virtual const char * giveClassName() const
Class Interface.
Definition: interface.h:82
parallelStruct(FloatArray *a, FloatMatrix *b, IntArray *c)
the oofem namespace is to define a context or scope in which all oofem names are defined.
The base class for all recovery models, which perform nodal averaging or projection processes for int...
Class representing solution step.
Definition: timestep.h:80
The nodal recovery model based on paper of Zienkiewicz and Zhu "A Simple Estimator and Adaptive Proce...

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