OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
adaptnlinearstatic.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 adaptnlinearstatic_h
36 #define adaptnlinearstatic_h
37 
38 #include "../sm/EngineeringModels/nlinearstatic.h"
39 #include "sparsemtrx.h"
40 #include "errorestimator.h"
41 #include "meshpackagetype.h"
42 
44 
45 #define _IFT_AdaptiveNonLinearStatic_Name "adaptnlinearstatic"
46 #define _IFT_AdaptiveNonLinearStatic_meshpackage "meshpackage"
47 #define _IFT_AdaptiveNonLinearStatic_equilmc "equilmc"
48 #define _IFT_AdaptiveNonLinearStatic_controlmode "controlmode"
49 #define _IFT_AdaptiveNonLinearStatic_ddm "ddm"
50 #define _IFT_AdaptiveNonLinearStatic_refloadmode "refloadmode"
51 #define _IFT_AdaptiveNonLinearStatic_preMappingLoadBalancingFlag "premaplbflag"
52 
53 
54 namespace oofem {
75 {
76 protected:
97 
98 public:
99  AdaptiveNonLinearStatic(int i, EngngModel * _master = NULL);
100  virtual ~AdaptiveNonLinearStatic();
101 
102  virtual void solveYourselfAt(TimeStep *tStep);
103  virtual void updateYourself(TimeStep *tStep);
104 
106  virtual double giveUnknownComponent(ValueModeType mode, TimeStep *tStep, Domain *d, Dof *dof);
107 
111  virtual double giveTimeStepLoadLevel(int istep);
117  virtual int initializeAdaptive(int tStepNumber);
123  virtual int initializeAdaptiveFrom(EngngModel *sourceProblem);
129  virtual int adaptiveRemap(Domain *dNew);
130 
131  virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode);
133 
134  virtual void updateDomainLinks();
135 
136  virtual const char *giveClassName() const { return "AdaptiveNonLinearStatic"; }
137  virtual const char *giveInputRecordName() const { return _IFT_AdaptiveNonLinearStatic_Name; }
138 
139 #ifdef __PARALLEL_MODE
140  virtual LoadBalancer *giveLoadBalancer();
142 #endif
143 
144 protected:
145  void assembleInitialLoadVector(FloatArray &loadVector, FloatArray &loadVectorOfPrescribed,
146  AdaptiveNonLinearStatic *sourceProblem, int domainIndx, TimeStep *tStep);
147  //void assembleCurrentTotalLoadVector (FloatArray& loadVector, FloatArray& loadVectorOfPrescribed,
148  // AdaptiveNonLinearStatic* sourceProblem, int domainIndx, TimeStep* tStep);
149 };
150 } // end namespace oofem
151 #endif // adaptnlinearstatic_h
virtual void updateYourself(TimeStep *tStep)
Updates internal state after finishing time step.
Class and object Domain.
Definition: domain.h:115
#define _IFT_AdaptiveNonLinearStatic_Name
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode)
Stores the state of model to output stream.
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
Definition: datastream.h:54
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
Definition: valuemodetype.h:78
virtual LoadBalancerMonitor * giveLoadBalancerMonitor()
Returns reference to receiver's load balancer monitor.
AdaptiveNonLinearStatic(int i, EngngModel *_master=NULL)
virtual double giveTimeStepLoadLevel(int istep)
Returns the load level corresponding to given solution step number.
virtual const char * giveClassName() const
Returns class name of the receiver.
FloatArray loadVector
Definition: linearstatic.h:67
virtual double giveUnknownComponent(ValueModeType mode, TimeStep *tStep, Domain *d, Dof *dof)
Returns requested unknown.
void assembleInitialLoadVector(FloatArray &loadVector, FloatArray &loadVectorOfPrescribed, AdaptiveNonLinearStatic *sourceProblem, int domainIndx, TimeStep *tStep)
virtual void solveYourselfAt(TimeStep *tStep)
Solves problem for given time step.
int equilibrateMappedConfigurationFlag
Flag indication whether to restore equilibrium after adaptive remapping.
FloatArray timeStepLoadLevels
Array storing the load levels reached in corresponding time steps.
Abstract base class representing general load balancer.
Definition: loadbalancer.h:108
Class representing vector of real numbers.
Definition: floatarray.h:82
virtual int initializeAdaptiveFrom(EngngModel *sourceProblem)
Initializes the receiver state according to state of given source problem.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description in input reader.
virtual int adaptiveRemap(Domain *dNew)
Remaps the solution state to newly given domain.
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
Class representing the general Input Record.
Definition: inputrecord.h:101
virtual LoadBalancer * giveLoadBalancer()
Returns reference to receiver's load balancer.
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
Definition: contextmode.h:43
This class implements nonlinear static engineering problem.
Definition: nlinearstatic.h:88
MeshPackageType
Enumerative type used to classify supported mesh packages.
Abstract base class representing the "problem" under consideration.
Definition: engngm.h:181
virtual int initializeAdaptive(int tStepNumber)
Initializes the newly generated discretization state according to previous solution.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual const char * giveInputRecordName() const
bool preMappingLoadBalancingFlag
Flag to trigger load balancing before adaptive remapping.
Abstract class Dof represents Degree Of Freedom in finite element mesh.
Definition: dof.h:93
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode)
Restores the state of model from output stream.
virtual void updateDomainLinks()
Updates domain links after the domains of receiver have changed.
Class representing solution step.
Definition: timestep.h:80
This class implements Adaptive Non-LinearStatic Engineering problem.
Abstract base class representing general load balancer monitor.
Definition: loadbalancer.h:68

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