OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
parallelcontext.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 parallelcontext_h
36
#define parallelcontext_h
37
38
#include "oofemcfg.h"
39
#ifdef __PARALLEL_MODE
40
#include "
parallelordering.h
"
41
#endif
42
43
namespace
oofem
{
44
class
EngngModel;
45
class
FloatArray;
46
class
DofManager;
47
54
class
OOFEM_EXPORT
ParallelContext
55
{
56
protected
:
57
int
di
;
58
EngngModel
*
emodel
;
59
#ifdef __PARALLEL_MODE
60
Natural2GlobalOrdering
n2g
;
61
Natural2LocalOrdering
n2l
;
62
#endif
63
64
public
:
69
ParallelContext
(
EngngModel
* e);
70
~
ParallelContext
();
71
76
void
init(
int
newDi);
77
78
int
giveNumberOfLocalEqs();
79
int
giveNumberOfGlobalEqs();
80
int
giveNumberOfNaturalEqs();
81
83
84
bool
isLocal(
DofManager
*dman);
89
double
localNorm(
const
FloatArray
&src);
90
95
double
dotProduct(
const
FloatArray
&a,
const
FloatArray
&b);
100
double
localDotProduct(
const
FloatArray
&a,
const
FloatArray
&b);
104
double
accumulate(
double
local);
108
void
accumulate(
const
FloatArray
&local,
FloatArray
&global);
110
111
#ifdef __PARALLEL_MODE
112
Natural2GlobalOrdering
*
giveN2Gmap
() {
return
& n2g; }
113
Natural2LocalOrdering
*
giveN2Lmap
() {
return
& n2l; }
114
#endif
115
};
116
}
// end namespace oofem
117
118
#endif // parallelcontext_h
oofem::ParallelContext::di
int di
Definition:
parallelcontext.h:57
oofem::Natural2LocalOrdering
Ordering from oofem natural ordering (includes all local and shared eqs) to local ordering...
Definition:
parallelordering.h:133
oofem::DofManager
Base class for dof managers.
Definition:
dofmanager.h:113
oofem::Natural2GlobalOrdering
Ordering from oofem natural ordering (includes all local and shared eqs) to global ordering...
Definition:
parallelordering.h:100
oofem::ParallelContext::giveN2Lmap
Natural2LocalOrdering * giveN2Lmap()
Definition:
parallelcontext.h:113
parallelordering.h
oofem::FloatArray
Class representing vector of real numbers.
Definition:
floatarray.h:82
oofem::ParallelContext
This class provides an communication context for distributed memory parallelism.
Definition:
parallelcontext.h:54
oofem::ParallelContext::n2l
Natural2LocalOrdering n2l
Definition:
parallelcontext.h:61
oofem::ParallelContext::n2g
Natural2GlobalOrdering n2g
Definition:
parallelcontext.h:60
oofem::ParallelContext::giveN2Gmap
Natural2GlobalOrdering * giveN2Gmap()
Definition:
parallelcontext.h:112
oofem::ParallelContext::emodel
EngngModel * emodel
Definition:
parallelcontext.h:58
oofem::EngngModel
Abstract base class representing the "problem" under consideration.
Definition:
engngm.h:181
oofem
the oofem namespace is to define a context or scope in which all oofem names are defined.
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