OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
nltransienttransportproblem.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 nltransienttransportproblem_h
36 #define nltransienttransportproblem_h
37 
39 #include "sparselinsystemnm.h"
40 #include "sparsemtrx.h"
41 
43 
44 #define _IFT_NLTransientTransportProblem_Name "nltransienttransportproblem"
45 #define _IFT_NLTransientTransportProblem_nsmax "nsmax"
46 #define _IFT_NLTransientTransportProblem_rtol "rtol"
47 #define _IFT_NLTransientTransportProblem_manrmsteps "manrmsteps"
48 
49 
50 namespace oofem {
60 {
61 protected:
63 
64  double rtol;
65  int nsmax;
69 
70 public:
72  NLTransientTransportProblem(int i, EngngModel * _master);
75 
76  virtual TimeStep* giveNextStep();
77  virtual void solveYourselfAt(TimeStep *tStep);
78  virtual void updateYourself(TimeStep *tStep);
79  virtual double giveUnknownComponent(ValueModeType mode, TimeStep *tStep, Domain *d, Dof *dof);
80 
82 
83  // identification
84  virtual const char *giveInputRecordName() const { return _IFT_NLTransientTransportProblem_Name; }
85  virtual const char *giveClassName() const { return "NLTransientTransportProblem"; }
86  virtual fMode giveFormulation() { return nonLinFormulation; }
87  virtual int giveUnknownDictHashIndx(ValueModeType mode, TimeStep *tStep);
88  virtual void updateDofUnknownsDictionary(DofManager *dman, TimeStep *tStep);
89 
91 
92 protected:
93  virtual void updateInternalState(TimeStep *tStep);
94  virtual void applyIC(TimeStep *tStep);
97 };
98 } // end namespace oofem
99 #endif // nltransienttransportproblem_h
void createPreviousSolutionInDofUnknownsDictionary(TimeStep *tStep)
Class and object Domain.
Definition: domain.h:115
enum fMode nonLinFormulation
Type of non linear formulation (total or updated formulation).
Definition: engngm.h:271
void assembleAlgorithmicPartOfRhs(FloatArray &rhs, const UnknownNumberingScheme &s, TimeStep *tStep)
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
Definition: valuemodetype.h:78
virtual double giveUnknownComponent(ValueModeType mode, TimeStep *tStep, Domain *d, Dof *dof)
Returns requested unknown.
#define _IFT_NLTransientTransportProblem_Name
Base class for dof managers.
Definition: dofmanager.h:113
virtual void applyIC(TimeStep *tStep)
This function is normally called at the first time to project initial conditions to previous (0^th) s...
virtual const char * giveClassName() const
Returns class name of the receiver.
virtual TimeStep * giveNextStep()
Returns next time step (next to current step) of receiver.
Abstract base class allowing to control the way, how equations are assigned to individual DOFs...
This class represents linear nonstationary transport problem.
virtual int giveUnknownDictHashIndx(ValueModeType mode, TimeStep *tStep)
This method is responsible for computing unique dictionary id (ie hash value) from given valueModeTyp...
NLTransientTransportProblem(int i, EngngModel *_master)
Constructor.
virtual fMode giveFormulation()
Indicates type of non linear computation (total or updated formulation).
Class representing vector of real numbers.
Definition: floatarray.h:82
virtual int giveCurrentNumberOfIterations()
Returns number of iterations that was required to reach equilibrium - used for adaptive step length i...
virtual void updateDofUnknownsDictionary(DofManager *dman, TimeStep *tStep)
Updates necessary values in Dofs unknown dictionaries.
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
virtual const char * giveInputRecordName() const
Class representing the general Input Record.
Definition: inputrecord.h:101
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description in input reader.
fMode
Type representing the type of formulation (total or updated) of non-linear computation.
Definition: fmode.h:42
virtual void updateYourself(TimeStep *tStep)
Updates internal state after finishing time step.
This class represents nonlinear transient transport problem.
Abstract base class representing the "problem" under consideration.
Definition: engngm.h:181
the oofem namespace is to define a context or scope in which all oofem names are defined.
Abstract class Dof represents Degree Of Freedom in finite element mesh.
Definition: dof.h:93
virtual void updateInternalState(TimeStep *tStep)
Updates IP values on elements.
virtual void solveYourselfAt(TimeStep *tStep)
Solves problem for given time step.
Class representing solution step.
Definition: timestep.h:80

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