Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Backofen, Rainer
amdis
Commits
23943fbb
Commit
23943fbb
authored
Mar 24, 2009
by
Thomas Witkowski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* Some work on parallel AMDiS
parent
cd344056
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
549 additions
and
605 deletions
+549
-605
AMDiS/libtool
AMDiS/libtool
+35
-35
AMDiS/src/AMDiS.h
AMDiS/src/AMDiS.h
+1
-0
AMDiS/src/Element.cc
AMDiS/src/Element.cc
+9
-1
AMDiS/src/Element.h
AMDiS/src/Element.h
+63
-132
AMDiS/src/ElementFileWriter.cc
AMDiS/src/ElementFileWriter.cc
+3
-5
AMDiS/src/MacroElement.h
AMDiS/src/MacroElement.h
+34
-83
AMDiS/src/Mesh.cc
AMDiS/src/Mesh.cc
+13
-2
AMDiS/src/Mesh.h
AMDiS/src/Mesh.h
+3
-1
AMDiS/src/ParMetisPartitioner.cc
AMDiS/src/ParMetisPartitioner.cc
+63
-65
AMDiS/src/ParMetisPartitioner.h
AMDiS/src/ParMetisPartitioner.h
+7
-3
AMDiS/src/ParallelProblem.cc
AMDiS/src/ParallelProblem.cc
+32
-9
AMDiS/src/ParallelProblem.h
AMDiS/src/ParallelProblem.h
+1
-1
AMDiS/src/Traverse.cc
AMDiS/src/Traverse.cc
+267
-221
AMDiS/src/Traverse.h
AMDiS/src/Traverse.h
+18
-47
No files found.
AMDiS/libtool
View file @
23943fbb
...
...
@@ -30,10 +30,10 @@
# the same distribution terms that you use for the rest of that program.
# A sed program that does not truncate output.
SED
=
"/bin/sed"
SED
=
"/
usr/
bin/sed"
# Sed that helps us avoid accidentally triggering echo(1) options like -n.
Xsed
=
"/bin/sed -e 1s/^X//"
Xsed
=
"/
usr/
bin/sed -e 1s/^X//"
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
...
...
@@ -44,7 +44,7 @@ available_tags=" CXX F77"
# ### BEGIN LIBTOOL CONFIG
# Libtool was configured on host
NWRW15
:
# Libtool was configured on host
p2d079
:
# Shell to use when invoking shell scripts.
SHELL
=
"/bin/sh"
...
...
@@ -66,12 +66,12 @@ fast_install=yes
# The host system.
host_alias
=
host
=
i686-redhat
-linux-gnu
host
=
x86_64-unknown
-linux-gnu
host_os
=
linux-gnu
# The build system.
build_alias
=
build
=
i686-redhat
-linux-gnu
build
=
x86_64-unknown
-linux-gnu
build_os
=
linux-gnu
# An echo program that does not interpret backslashes.
...
...
@@ -82,25 +82,25 @@ AR="ar"
AR_FLAGS
=
"cru"
# A C compiler.
LTCC
=
"
g
cc"
LTCC
=
"
/licsoft/libraries/openmpi/1.2.6/64bit/bin/mpi
cc"
# LTCC compiler flags.
LTCFLAGS
=
"-g -O2"
# A language-specific compiler.
CC
=
"
g
cc"
CC
=
"
/licsoft/libraries/openmpi/1.2.6/64bit/bin/mpi
cc"
# Is the compiler the GNU C compiler?
with_gcc
=
yes
gcc_dir
=
`
gcc
-print-file-name
=
.
| /bin/sed
's,/\.$,,'
`
gcc_dir
=
`
gcc
-print-file-name
=
.
|
/usr
/bin/sed
's,/\.$,,'
`
gcc_ver
=
`
gcc
-dumpversion
`
# An ERE matcher.
EGREP
=
"grep -E"
# The linker used to build libraries.
LD
=
"/usr/
bin/ld
"
LD
=
"/usr/
x86_64-suse-linux/bin/ld -m elf_x86_64
"
# Whether we need hard or soft links.
LN_S
=
"ln -s"
...
...
@@ -174,7 +174,7 @@ dlopen_self=unknown
dlopen_self_static
=
unknown
# Compiler flag to prevent dynamic linking.
link_static_flag
=
"
-static
"
link_static_flag
=
""
# Compiler flag to turn off builtin functions.
no_builtin_flag
=
" -fno-builtin"
...
...
@@ -328,10 +328,10 @@ variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COM
link_all_deplibs
=
unknown
# Compile-time system search path for libraries
sys_lib_search_path_spec
=
`
echo
"
/usr/lib/gcc/i386-redhat-linux/4.1.2/ /usr/lib/gcc/i386-redhat-linux/4.1.2/ /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../i386-redhat-linux/lib/i386-redhat-linux/4.1.2/ /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../i386-redhat-linux/lib/ /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../i386-redhat-linux/4.1.2/ /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../ /lib/i386-redhat-linux/4.1.2/ /lib/ /usr/lib/i386-redhat-linux/4.1.2/ /usr/lib/
"
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
sys_lib_search_path_spec
=
`
echo
"
/lib64 /usr/lib64 /usr/local/lib64
"
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec
=
"/lib /usr/lib /usr/
lib/octave-
2.9.9 /
usr/lib/qt-3.3
/lib "
sys_lib_dlsearch_path_spec
=
"/lib
64
/usr/lib
64
/usr/
X11R6/lib64/Xaw3d /usr/X11R6/lib64 /usr/X11R6/lib/Xaw3d /usr/X11R6/lib /usr/x86_64-suse-linux/lib /usr/local/lib64 /usr/local/lib /opt/kde3/lib64 /opt/kde3/lib /opt/gnome/lib64 /opt/gnome/lib /lib64 /lib /usr/lib64 /usr/lib /opt/cluster/intel/cce/9.1.042/lib /opt/cluster/intel/fce/9.1.036/lib /opt/cluster/Pathscale3.0/lib/
2.9.9
9
/
opt/cluster/Pathscale3.0/lib/2.9.99/32 /work/licsoft/compilers/pgi/linux86-64/6.2/lib /work/licsoft/compilers/pgi/linux86-64/6.2
/lib
so
"
# Fix the shell variable $srcfile for the compiler.
fix_srcfile_path
=
""
...
...
@@ -7266,7 +7266,7 @@ disable_libs=static
# End:
# ### BEGIN LIBTOOL TAG CONFIG: CXX
# Libtool was configured on host
NWRW15
:
# Libtool was configured on host
p2d079
:
# Shell to use when invoking shell scripts.
SHELL
=
"/bin/sh"
...
...
@@ -7288,12 +7288,12 @@ fast_install=yes
# The host system.
host_alias
=
host
=
i686-redhat
-linux-gnu
host
=
x86_64-unknown
-linux-gnu
host_os
=
linux-gnu
# The build system.
build_alias
=
build
=
i686-redhat
-linux-gnu
build
=
x86_64-unknown
-linux-gnu
build_os
=
linux-gnu
# An echo program that does not interpret backslashes.
...
...
@@ -7304,25 +7304,25 @@ AR="ar"
AR_FLAGS
=
"cru"
# A C compiler.
LTCC
=
"
g
cc"
LTCC
=
"
/licsoft/libraries/openmpi/1.2.6/64bit/bin/mpi
cc"
# LTCC compiler flags.
LTCFLAGS
=
"-g -O2"
# A language-specific compiler.
CC
=
"
g++
"
CC
=
"
/licsoft/libraries/openmpi/1.2.6/64bit/bin/mpiCC
"
# Is the compiler the GNU C compiler?
with_gcc
=
yes
gcc_dir
=
`
gcc
-print-file-name
=
.
| /bin/sed
's,/\.$,,'
`
gcc_dir
=
`
gcc
-print-file-name
=
.
|
/usr
/bin/sed
's,/\.$,,'
`
gcc_ver
=
`
gcc
-dumpversion
`
# An ERE matcher.
EGREP
=
"grep -E"
# The linker used to build libraries.
LD
=
"/usr/
bin/ld
"
LD
=
"/usr/
x86_64-suse-linux/bin/ld -m elf_x86_64
"
# Whether we need hard or soft links.
LN_S
=
"ln -s"
...
...
@@ -7396,7 +7396,7 @@ dlopen_self=unknown
dlopen_self_static
=
unknown
# Compiler flag to prevent dynamic linking.
link_static_flag
=
"
-static
"
link_static_flag
=
""
# Compiler flag to turn off builtin functions.
no_builtin_flag
=
" -fno-builtin"
...
...
@@ -7451,11 +7451,11 @@ striplib="strip --strip-unneeded"
# Dependencies to place before the objects being linked to create a
# shared library.
predep_objects
=
`
echo
"/usr/lib/gcc/
i386-redhat
-linux/4.1.2/../../../crti.o /usr/lib/gcc/
i386-redhat
-linux/4.1.2/crtbeginS.o"
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
predep_objects
=
`
echo
"/usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2/../../../
../lib64/
crti.o /usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2/crtbeginS.o"
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
# Dependencies to place after the objects being linked to create a
# shared library.
postdep_objects
=
`
echo
"/usr/lib/gcc/
i386-redhat
-linux/4.1.2/crtendS.o /usr/lib/gcc/
i386-redhat
-linux/4.1.2/../../../crtn.o"
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
postdep_objects
=
`
echo
"/usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2/crtendS.o /usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2/../../../
../lib64/
crtn.o"
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
# Dependencies to place before the objects being linked to create a
# shared library.
...
...
@@ -7463,11 +7463,11 @@ predeps=""
# Dependencies to place after the objects being linked to create a
# shared library.
postdeps
=
"-lstdc++ -lm -lgcc_s -lc -lgcc_s"
postdeps
=
"
-lmpi_cxx -lmpi -lopen-rte -lopen-pal -libverbs -lrt -lnuma -ldl -lnsl -lutil -ldl
-lstdc++ -lm -lgcc_s
-lpthread
-lc -lgcc_s"
# The library search path used internally by the compiler when linking
# a shared library.
compiler_lib_search_path
=
`
echo
"-L/usr/lib
/gcc/i386-redhat
-linux/4.1.2 -L/usr/lib/gcc/
i386-redhat
-linux/4.1.2
-L/usr/lib/gcc/i386-redhat
-linux/4.1.2/../../.."
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
compiler_lib_search_path
=
`
echo
"-L/usr/lib
64 -L/licsoft/libraries/openmpi/1.2.6/64bit/lib -L/usr/lib64/gcc/x86_64-suse
-linux/4.1.2 -L/usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2
/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../x86_64-suse-linux/lib -L/usr/lib64/gcc/x86_64-suse
-linux/4.1.2/../../.."
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
# Method to check whether dependent libraries are shared objects.
deplibs_check_method
=
"pass_all"
...
...
@@ -7547,10 +7547,10 @@ variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COM
link_all_deplibs
=
unknown
# Compile-time system search path for libraries
sys_lib_search_path_spec
=
`
echo
"
/usr/lib/gcc/i386-redhat-linux/4.1.2/ /usr/lib/gcc/i386-redhat-linux/4.1.2/ /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../i386-redhat-linux/lib/i386-redhat-linux/4.1.2/ /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../i386-redhat-linux/lib/ /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../i386-redhat-linux/4.1.2/ /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../ /lib/i386-redhat-linux/4.1.2/ /lib/ /usr/lib/i386-redhat-linux/4.1.2/ /usr/lib/
"
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
sys_lib_search_path_spec
=
`
echo
"
/lib64 /usr/lib64 /usr/local/lib64
"
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec
=
"/lib /usr/lib /usr/
lib/octave-
2.9.9 /
usr/lib/qt-3.3
/lib "
sys_lib_dlsearch_path_spec
=
"/lib
64
/usr/lib
64
/usr/
X11R6/lib64/Xaw3d /usr/X11R6/lib64 /usr/X11R6/lib/Xaw3d /usr/X11R6/lib /usr/x86_64-suse-linux/lib /usr/local/lib64 /usr/local/lib /opt/kde3/lib64 /opt/kde3/lib /opt/gnome/lib64 /opt/gnome/lib /lib64 /lib /usr/lib64 /usr/lib /opt/cluster/intel/cce/9.1.042/lib /opt/cluster/intel/fce/9.1.036/lib /opt/cluster/Pathscale3.0/lib/
2.9.9
9
/
opt/cluster/Pathscale3.0/lib/2.9.99/32 /work/licsoft/compilers/pgi/linux86-64/6.2/lib /work/licsoft/compilers/pgi/linux86-64/6.2
/lib
so
"
# Fix the shell variable $srcfile for the compiler.
fix_srcfile_path
=
""
...
...
@@ -7574,7 +7574,7 @@ include_expsyms=""
# ### BEGIN LIBTOOL TAG CONFIG: F77
# Libtool was configured on host
NWRW15
:
# Libtool was configured on host
p2d079
:
# Shell to use when invoking shell scripts.
SHELL
=
"/bin/sh"
...
...
@@ -7596,12 +7596,12 @@ fast_install=yes
# The host system.
host_alias
=
host
=
i686-redhat
-linux-gnu
host
=
x86_64-unknown
-linux-gnu
host_os
=
linux-gnu
# The build system.
build_alias
=
build
=
i686-redhat
-linux-gnu
build
=
x86_64-unknown
-linux-gnu
build_os
=
linux-gnu
# An echo program that does not interpret backslashes.
...
...
@@ -7612,7 +7612,7 @@ AR="ar"
AR_FLAGS
=
"cru"
# A C compiler.
LTCC
=
"
g
cc"
LTCC
=
"
/licsoft/libraries/openmpi/1.2.6/64bit/bin/mpi
cc"
# LTCC compiler flags.
LTCFLAGS
=
"-g -O2"
...
...
@@ -7621,16 +7621,16 @@ LTCFLAGS="-g -O2"
CC
=
"g77"
# Is the compiler the GNU C compiler?
with_gcc
=
yes
with_gcc
=
gcc_dir
=
`
gcc
-print-file-name
=
.
| /bin/sed
's,/\.$,,'
`
gcc_dir
=
`
gcc
-print-file-name
=
.
|
/usr
/bin/sed
's,/\.$,,'
`
gcc_ver
=
`
gcc
-dumpversion
`
# An ERE matcher.
EGREP
=
"grep -E"
# The linker used to build libraries.
LD
=
"/usr/
bin/ld
"
LD
=
"/usr/
x86_64-suse-linux/bin/ld -m elf_x86_64
"
# Whether we need hard or soft links.
LN_S
=
"ln -s"
...
...
@@ -7858,10 +7858,10 @@ variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COM
link_all_deplibs
=
unknown
# Compile-time system search path for libraries
sys_lib_search_path_spec
=
`
echo
"
/usr/lib/gcc/i386-redhat-linux/3.4.6/ /usr/lib/gcc/i386-redhat-linux/3.4.6/ /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../i386-redhat-linux/lib/i386-redhat-linux/3.4.6/ /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../i386-redhat-linux/lib/ /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../i386-redhat-linux/3.4.6/ /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../ /lib/i386-redhat-linux/3.4.6/ /lib/ /usr/lib/i386-redhat-linux/3.4.6/ /usr/lib/
"
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
sys_lib_search_path_spec
=
`
echo
"
/lib64 /usr/lib64 /usr/local/lib64
"
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec
=
"/lib /usr/lib /usr/
lib/octave-
2.9.9 /
usr/lib/qt-3.3
/lib "
sys_lib_dlsearch_path_spec
=
"/lib
64
/usr/lib
64
/usr/
X11R6/lib64/Xaw3d /usr/X11R6/lib64 /usr/X11R6/lib/Xaw3d /usr/X11R6/lib /usr/x86_64-suse-linux/lib /usr/local/lib64 /usr/local/lib /opt/kde3/lib64 /opt/kde3/lib /opt/gnome/lib64 /opt/gnome/lib /lib64 /lib /usr/lib64 /usr/lib /opt/cluster/intel/cce/9.1.042/lib /opt/cluster/intel/fce/9.1.036/lib /opt/cluster/Pathscale3.0/lib/
2.9.9
9
/
opt/cluster/Pathscale3.0/lib/2.9.99/32 /work/licsoft/compilers/pgi/linux86-64/6.2/lib /work/licsoft/compilers/pgi/linux86-64/6.2
/lib
so
"
# Fix the shell variable $srcfile for the compiler.
fix_srcfile_path
=
""
...
...
AMDiS/src/AMDiS.h
View file @
23943fbb
...
...
@@ -66,6 +66,7 @@
#include "Operator.h"
#include "Parameters.h"
#include "Parametric.h"
#include "PartitionElementData.h"
#include "PeriodicMap.h"
#include "PeriodicBC.h"
#include "Preconditioner.h"
...
...
AMDiS/src/Element.cc
View file @
23943fbb
...
...
@@ -41,6 +41,7 @@ namespace AMDiS {
newCoord
=
NULL
;
elementData
=
NULL
;
mark
=
0
;
hidden
=
false
;
if
(
mesh
)
{
setDOFPtrs
();
...
...
@@ -138,6 +139,7 @@ namespace AMDiS {
el
->
mesh
=
mesh
;
el
->
index
=
index
;
el
->
mark
=
mark
;
el
->
hidden
=
hidden
;
if
(
newCoord
)
{
WorldVector
<
double
>
*
nc
=
NEW
WorldVector
<
double
>
();
*
nc
=
*
newCoord
;
...
...
@@ -420,6 +422,9 @@ namespace AMDiS {
// write mark
out
.
write
(
reinterpret_cast
<
const
char
*>
(
&
mark
),
sizeof
(
signed
char
));
// write hidden flag
out
.
write
(
reinterpret_cast
<
const
char
*>
(
&
hidden
),
sizeof
(
hidden
));
// write newCoord
if
(
newCoord
)
{
out
<<
"WorldVector
\n
"
;
...
...
@@ -498,9 +503,12 @@ namespace AMDiS {
// read index
in
.
read
(
reinterpret_cast
<
char
*>
(
&
index
),
sizeof
(
int
));
//
write
mark
//
read
mark
in
.
read
(
reinterpret_cast
<
char
*>
(
&
mark
),
sizeof
(
signed
char
));
// read hidden
in
.
read
(
reinterpret_cast
<
char
*>
(
&
hidden
),
sizeof
(
bool
));
// read newCoord
in
>>
typeName
;
in
.
get
();
...
...
AMDiS/src/Element.h
View file @
23943fbb
...
...
@@ -81,26 +81,20 @@ namespace AMDiS {
class
Element
:
public
Serializable
{
private:
/** \brief
* private standard constructor because an Element must know his Mesh
*/
/// private standard constructor because an Element must know his Mesh
Element
()
{}
public:
/** \brief
* constructs an Element which belongs to Mesh
*/
/// constructs an Element which belongs to Mesh
Element
(
Mesh
*
);
/** \brief
* copy constructor
*/
/// copy constructor
Element
(
const
Element
&
old
);
/** \brief
* destructor
*/
/// destructor
virtual
~
Element
();
///
void
deleteElementDOFs
();
/** \brief
...
...
@@ -115,23 +109,17 @@ namespace AMDiS {
* \{
*/
/** \brief
* Returns \ref child[0]
*/
/// Returns \ref child[0]
inline
Element
*
getFirstChild
()
const
{
return
child
[
0
];
}
/** \brief
* Returns \ref child[1]
*/
/// Returns \ref child[1]
inline
Element
*
getSecondChild
()
const
{
return
child
[
1
];
}
/** \brief
* Returns \ref child[i], i=0,1
*/
/// Returns \ref child[i], i=0,1
inline
Element
*
getChild
(
int
i
)
const
{
TEST_EXIT_DBG
(
i
==
0
||
i
==
1
)(
"i must be 0 or 1
\n
"
);
return
child
[
i
];
...
...
@@ -145,30 +133,22 @@ namespace AMDiS {
return
(
child
[
0
]
==
NULL
);
}
/** \brief
* Returns \ref dof[i][j] which is the j-th DOF of the i-th node of Element.
*/
/// Returns \ref dof[i][j] which is the j-th DOF of the i-th node of Element.
const
DegreeOfFreedom
getDOF
(
int
i
,
int
j
)
const
{
return
dof
[
i
][
j
];
}
/** \brief
* Returns \ref dof[i] which is a pointer to the DOFs of the i-th node.
*/
/// Returns \ref dof[i] which is a pointer to the DOFs of the i-th node.
const
DegreeOfFreedom
*
getDOF
(
int
i
)
const
{
return
dof
[
i
];
}
/** \brief
* Returns a pointer to the DOFs of this Element
*/
/// Returns a pointer to the DOFs of this Element
const
DegreeOfFreedom
**
getDOF
()
const
{
return
const_cast
<
const
DegreeOfFreedom
**>
(
dof
);
}
/** \brief
* Returns \ref mesh of Element
*/
/// Returns \ref mesh of Element
inline
Mesh
*
getMesh
()
const
{
return
mesh
;
}
...
...
@@ -206,14 +186,10 @@ namespace AMDiS {
return
0.0
;
}
/** \brief
* Returns region of element if defined, -1 else.
*/
/// Returns region of element if defined, -1 else.
int
getRegion
()
const
;
/** \brief
* Returns local vertex number of the j-th vertex of the i-th edge
*/
/// Returns local vertex number of the j-th vertex of the i-th edge
virtual
int
getVertexOfEdge
(
int
i
,
int
j
)
const
=
0
;
/** \brief
...
...
@@ -224,24 +200,16 @@ namespace AMDiS {
int
positionIndex
,
int
vertexIndex
)
const
=
0
;
/** \brief
*
*/
///
virtual
int
getPositionOfVertex
(
int
side
,
int
vertex
)
const
=
0
;
/** \brief
*
*/
///
virtual
int
getEdgeOfFace
(
int
face
,
int
edge
)
const
=
0
;
/** \brief
* Returns the number of parts of type i in this element
*/
/// Returns the number of parts of type i in this element
virtual
int
getGeo
(
GeoIndex
i
)
const
=
0
;
/** \brief
* Returns Element's \ref mark
*/
/// Returns Element's \ref mark
inline
const
signed
char
getMark
()
const
{
return
mark
;
}
...
...
@@ -262,6 +230,16 @@ namespace AMDiS {
return
newCoord
;
}
/// Returns \ref hidden, i.e., if the element is visible for mesh traverses.
inline
bool
isHidden
()
{
return
hidden
;
}
/// Sets \ref hidden, i.e., wether the element is hidden for mesh traverses or not.
inline
void
setHidden
(
bool
b
)
{
hidden
=
b
;
}
/** \} */
// ===== setting methods ======================================================
...
...
@@ -270,23 +248,17 @@ namespace AMDiS {
* \{
*/
/** \brief
* Sets \ref child[0]
*/
/// Sets \ref child[0]
virtual
void
setFirstChild
(
Element
*
aChild
)
{
child
[
0
]
=
aChild
;
}
/** \brief
* Sets \ref child[1]
*/
/// Sets \ref child[1]
virtual
void
setSecondChild
(
Element
*
aChild
)
{
child
[
1
]
=
aChild
;
}
/** \brief
* Sets \ref elementData of Element
*/
/// Sets \ref elementData of Element
void
setElementData
(
ElementData
*
ed
)
{
elementData
=
ed
;
}
...
...
@@ -299,16 +271,12 @@ namespace AMDiS {
newCoord
=
coord
;
}
/** \brief
* Sets \ref mesh.
*/
/// Sets \ref mesh.
inline
void
setMesh
(
Mesh
*
m
)
{
mesh
=
m
;
}
/** \brief
* Sets the pointer to the DOFs of the i-th node of Element
*/
/// Sets the pointer to the DOFs of the i-th node of Element
DegreeOfFreedom
*
setDOF
(
int
pos
,
DegreeOfFreedom
*
p
)
{
dof
[
pos
]
=
p
;
return
dof
[
pos
];
...
...
@@ -350,24 +318,18 @@ namespace AMDiS {
}
}
/** \brief
* Sets Elements \ref mark = mark + 1;
*/
/// Sets Elements \ref mark = mark + 1;
inline
void
incrementMark
()
{
mark
++
;
}
/** \brief
* Sets Elements \ref mark = mark - 1;
*/
/// Sets Elements \ref mark = mark - 1;
inline
void
decrementMark
()
{
if
(
0
<
mark
)
mark
--
;
}
/** \brief
* Sets Element's \ref mark
*/
/// Sets Element's \ref mark
inline
void
setMark
(
signed
char
m
)
{
mark
=
m
;
}
...
...
@@ -409,33 +371,23 @@ namespace AMDiS {
*/
virtual
int
getVertexOfParent
(
int
childnr
,
int
vertexnr
,
int
elType
=
0
)
const
=
0
;
/** \brief
* Returns whether Element is a Line
*/
/// Returns whether Element is a Line
virtual
bool
isLine
()
const
=
0
;
/** \brief
* Returns whether Element is a Triangle
*/
/// Returns whether Element is a Triangle
virtual
bool
isTriangle
()
const
=
0
;
/** \brief
* Returns whether Element is a Tetrahedron
*/
/// Returns whether Element is a Tetrahedron
virtual
bool
isTetrahedron
()
const
=
0
;
/** \brief
* Returns whether Element has sideElem as one of its sides.
*/
/// Returns whether Element has sideElem as one of its sides.
virtual
bool
hasSide
(
Element
*
sideElem
)
const
=
0
;
/** \} */
// ===== other public methods =================================================
/** \brief
* assignment operator
*/
/// assignment operator
Element
&
operator
=
(
const
Element
&
el
);
/** \brief
...
...
@@ -444,9 +396,7 @@ namespace AMDiS {
*/
int
oppVertex
(
FixVec
<
DegreeOfFreedom
*
,
DIMEN
>
pdof
)
const
;
/** \brief
* Refines Element's leaf data
*/
/// Refines Element's leaf data
inline
void
refineElementData
(
Element
*
child1
,
Element
*
child2
,
int
elType
=
0
)
{
if
(
elementData
)
{
bool
remove
=
elementData
->
refineElementData
(
this
,
child1
,
child2
,
elType
);
...
...
@@ -458,9 +408,7 @@ namespace AMDiS {
}
}
/** \brief
* Coarsens Element's leaf data
*/
/// Coarsens Element's leaf data
inline
void
coarsenElementData
(
Element
*
child1
,
Element
*
child2
,
int
elType
=
0
)
{
ElementData
*
childData
;
childData
=
child1
->
getElementData
();
...
...
@@ -477,16 +425,12 @@ namespace AMDiS {
}
}
/** \brief
* Returns pointer to \ref elementData
*/
/// Returns pointer to \ref elementData
inline
ElementData
*
getElementData
()
const
{
return
elementData
;
}
/** \brief
*
*/
///
inline
ElementData
*
getElementData
(
int
typeID
)
const
{
if
(
elementData
)
{
return
elementData
->
getElementData
(
typeID
);
...
...
@@ -494,9 +438,7 @@ namespace AMDiS {
return
NULL
;
}
/** \brief
* Deletes the \ref elementData with a specific typeID.
*/
/// Deletes the \ref elementData with a specific typeID.
bool
deleteElementData
(
int
typeID
);
/** \brief
...
...
@@ -508,48 +450,36 @@ namespace AMDiS {
bool
isRefinedAtSide
(
int
side
,
Element
*
el1
,
Element
*
el2
,
unsigned
char
elementTyp
=
255
);
/** \brief
* Returns whether Element's \ref newCoord is set
*/
/// Returns whether Element's \ref newCoord is set
inline
bool
isNewCoordSet
()
const
{
return
(
newCoord
!=
NULL
);
}
/** \brief
* Frees memory for \ref newCoord
*/
/// Frees memory for \ref newCoord
void
eraseNewCoord
();
// ===== Serializable implementation =====
/// Serialize the element to a file.
void
serialize
(
std
::
ostream
&
out
);
/// Deserialize an element from a file.
void
deserialize
(
std
::
istream
&
in
);
int
calcMemoryUsage
();
// ===== protected methods ====================================================
protected:
/** \brief