OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
topologydescription.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 
36 #ifndef topologydescription_h
37 #define topologydescription_h
38 
39 #include "error.h"
40 #include "oofemcfg.h"
41 
42 namespace oofem {
43 class SpatialLocalizer;
44 class TimeStep;
45 class Domain;
46 class DataReader;
47 
54 };
55 
62 class OOFEM_EXPORT TopologyDescription
63 {
64 protected:
67 
68 public:
70  this->d = d;
71  }
72  virtual ~TopologyDescription() { }
76  virtual bool instanciateYourself(DataReader &dr) = 0;
77 
82  virtual TopologyState updateYourself(TimeStep *tStep) = 0;
83 
89  virtual void doOutput(TimeStep *tStep)
90  { OOFEM_ERROR( "Not implemented" ); }
91 
97  virtual void replaceFEMesh() // (Domain *& newDomain)
98  { OOFEM_ERROR( "Not implemented" ); }
99 
104  virtual void setDomain(Domain *newDomain) { d = newDomain; }
105 
109  virtual const char *giveClassName() const = 0;
110 
112  std :: string errorInfo(const char *func) const {
113  return std::string(this->giveClassName()) + "::" + func;
114  }
115 };
116 } // end namespace oofem
117 #endif // topologydescription_h
Class and object Domain.
Definition: domain.h:115
virtual void doOutput(TimeStep *tStep)
File output of the current state of the topology description.
std::string errorInfo(const char *func) const
Returns string for prepending output (used by error reporting macros).
Indicates that everything is OK with respect to topology.
virtual void setDomain(Domain *newDomain)
Changes the connected domain of receiver.
Class representing the abstraction for input data source.
Definition: datareader.h:50
Indicates that the topology has reached a need for remeshing, as the case with merging surfaces...
#define OOFEM_ERROR(...)
Definition: error.h:61
Domain * d
Domain which topology belongs to.
Abstract class for topology description.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual void replaceFEMesh()
Generates the FE components from the bare mesh.
TopologyState
Determines the state of the evolving topology.
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:31 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011