OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
directerrorindicatorrc.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 directerrorindicatorrc_h
36 #define directerrorindicatorrc_h
37 
38 #include "interface.h"
39 #include "remeshingcrit.h"
40 #include "floatarray.h"
41 #include "statecountertype.h"
42 
43 #include <map>
44 
46 
47 #define _IFT_DirectErrorIndicatorRC_minlim "minlim"
48 #define _IFT_DirectErrorIndicatorRC_maxlim "maxlim"
49 #define _IFT_DirectErrorIndicatorRC_mindens "mindens"
50 #define _IFT_DirectErrorIndicatorRC_maxdens "maxdens"
51 #define _IFT_DirectErrorIndicatorRC_defdens "defdens"
52 #define _IFT_DirectErrorIndicatorRC_remeshingdensityratio "remeshingdensityratio"
53 
54 
55 namespace oofem {
56 class Domain;
57 class Element;
58 class TimeStep;
59 class ProblemCommunicator;
60 class ProcessCommunicator;
61 
71 {
72 protected:
87 #ifdef __PARALLEL_MODE
88  std :: map< int, double >sharedDofManDensities;
89  std :: map< int, double >sharedDofManIndicatorVals;
91 #endif
92 
93 public:
96  virtual ~DirectErrorIndicatorRC();
97 
98  virtual double giveRequiredDofManDensity(int num, TimeStep *tStep, int relative = 0);
99  virtual double giveDofManDensity(int num);
100 
102 
103  virtual int estimateMeshDensities(TimeStep *tStep);
108 
109  void giveNodeChar(int inode, TimeStep *tStep, double &indicatorVal, double &currDensity);
111  virtual void reinitialize();
112 
113  virtual void setDomain(Domain *d);
114 
115  virtual const char *giveInputRecordName() const { return NULL; }
116  virtual const char *giveClassName() const { return "DirectErrorIndicatorRC"; }
117 
118 protected:
119  double giveLocalDofManDensity(int num);
125  double giveDofManIndicator(int num, TimeStep *tStep);
126  double giveLocalDofManIndicator(int num, TimeStep *tStep);
127 #ifdef __PARALLEL_MODE
131 
135 #endif
136 };
137 } // end namespace oofem
138 #endif // directerrorindicatorrc_h
double giveDofManIndicator(int num, TimeStep *tStep)
Returns dof man indicator values.
double giveLocalDofManIndicator(int num, TimeStep *tStep)
The base class for all remeshing criteria.
Definition: remeshingcrit.h:61
double remeshingDensityRatioToggle
Ratio between proposedDensity and currDensity.
virtual const char * giveClassName() const
DirectErrorIndicatorRC(int n, ErrorEstimator *e)
Constructor.
Class and object Domain.
Definition: domain.h:115
long StateCounterType
StateCounterType type used to indicate solution state.
int unpackSharedDofManLocalDensities(ProcessCommunicator &processComm)
virtual int estimateMeshDensities(TimeStep *tStep)
Estimates the nodal densities.
int unpackSharedDofManLocalIndicatorVals(ProcessCommunicator &processComm)
The class is an implementation of "direct" remeshing criteria, which maps the error indication...
double zeroIndicatorDensity
Default mesh density for Indicator value < minIndicatorLimit.
virtual const char * giveInputRecordName() const
virtual RemeshingStrategy giveRemeshingStrategy(TimeStep *tStep)
Determines, if the remeshing is needed, and if needed, the type of strategy used. ...
int packSharedDofManLocalDensities(ProcessCommunicator &processComm)
std::map< int, double > sharedDofManIndicatorVals
virtual double giveRequiredDofManDensity(int num, TimeStep *tStep, int relative=0)
Returns the required mesh size n given dof manager.
virtual void setDomain(Domain *d)
Sets associated Domain.
Class representing process communicator for engineering model.
Definition: processcomm.h:176
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
The base class for all error estimation or error indicator algorithms.
Class representing vector of real numbers.
Definition: floatarray.h:82
RemeshingStrategy
Type representing the remeshing strategy.
Definition: remeshingcrit.h:50
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
Class representing the general Input Record.
Definition: inputrecord.h:101
double giveMinIndicatorLimit()
Returns the minimum indicator limit.
void giveNodeChar(int inode, TimeStep *tStep, double &indicatorVal, double &currDensity)
std::map< int, double > sharedDofManDensities
the oofem namespace is to define a context or scope in which all oofem names are defined.
void exchangeDofManIndicatorVals(TimeStep *tStep)
int packSharedDofManLocalIndicatorVals(ProcessCommunicator &processComm)
Class representing solution step.
Definition: timestep.h:80
virtual double giveDofManDensity(int num)
Returns existing mesh size for given dof manager.
StateCounterType stateCounter
Actual values (densities) state counter.

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