Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Backofen, Rainer
amdis
Commits
159489a8
Commit
159489a8
authored
Apr 14, 2009
by
Thomas Witkowski
Browse files
* Bugfix in ParallelDomainProblem (segdev)
parent
746b26ef
Changes
9
Hide whitespace changes
Inline
Side-by-side
AMDiS/libtool
View file @
159489a8
...
...
@@ -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
deimos103
:
# Shell to use when invoking shell scripts.
SHELL
=
"/bin/sh"
...
...
@@ -66,12 +66,12 @@ fast_install=yes
# The host system.
host_alias
=
host
=
i686-pc
-linux-gnu
host
=
x86_64-unknown
-linux-gnu
host_os
=
linux-gnu
# The build system.
build_alias
=
build
=
i686-pc
-linux-gnu
build
=
x86_64-unknown
-linux-gnu
build_os
=
linux-gnu
# An echo program that does not interpret backslashes.
...
...
@@ -82,13 +82,13 @@ 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
...
...
@@ -97,7 +97,7 @@ with_gcc=yes
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"
...
...
@@ -171,7 +171,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"
...
...
@@ -325,10 +325,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
=
" /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/"
sys_lib_search_path_spec
=
" /usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2/ /usr/lib/gcc/
x86_64-suse
-linux/4.1.2/ /usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2/../../../../
x86_64-suse-linux/lib/x86_64-suse
-linux/4.1.2/ /usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2/../../../../
x86_64-suse
-linux/lib/
../lib64/
/usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2/../../../
x86_64-suse
-linux/4.1.2/ /usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2/../../../
../lib64/ /lib/x86_64-suse-linux/4.1.2/ /lib/../lib64/ /usr/lib/x86_64-suse-linux/4.1.2/ /usr/lib/../lib64/ /usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../x86_64-suse-linux/lib/ /usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../ /lib
/ /usr/lib/"
# 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 /usr/lib /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
=
""
...
...
@@ -6760,7 +6760,7 @@ build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
# End:
# ### BEGIN LIBTOOL TAG CONFIG: CXX
# Libtool was configured on host
NWRW15
:
# Libtool was configured on host
deimos103
:
# Shell to use when invoking shell scripts.
SHELL
=
"/bin/sh"
...
...
@@ -6782,12 +6782,12 @@ fast_install=yes
# The host system.
host_alias
=
host
=
i686-pc
-linux-gnu
host
=
x86_64-unknown
-linux-gnu
host_os
=
linux-gnu
# The build system.
build_alias
=
build
=
i686-pc
-linux-gnu
build
=
x86_64-unknown
-linux-gnu
build_os
=
linux-gnu
# An echo program that does not interpret backslashes.
...
...
@@ -6798,13 +6798,13 @@ 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
...
...
@@ -6813,7 +6813,7 @@ with_gcc=yes
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"
...
...
@@ -6887,7 +6887,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"
...
...
@@ -6942,11 +6942,11 @@ striplib="strip --strip-unneeded"
# Dependencies to place before the objects being linked to create a
# shared library.
predep_objects
=
"/usr/lib/gcc/
i386-redhat
-linux/4.1.2/../../../crti.o /usr/lib/gcc/
i386-redhat
-linux/4.1.2/crtbeginS.o"
predep_objects
=
"/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"
# Dependencies to place after the objects being linked to create a
# shared library.
postdep_objects
=
"/usr/lib/gcc/
i386-redhat
-linux/4.1.2/crtendS.o /usr/lib/gcc/
i386-redhat
-linux/4.1.2/../../../crtn.o"
postdep_objects
=
"/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"
# Dependencies to place before the objects being linked to create a
# shared library.
...
...
@@ -6954,11 +6954,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
=
"-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/../../.."
compiler_lib_search_path
=
"-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/../../.."
# Method to check whether dependent libraries are shared objects.
deplibs_check_method
=
"pass_all"
...
...
@@ -7038,10 +7038,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
=
" /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/"
sys_lib_search_path_spec
=
" /usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2/ /usr/lib/gcc/
x86_64-suse
-linux/4.1.2/ /usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2/../../../../
x86_64-suse-linux/lib/x86_64-suse
-linux/4.1.2/ /usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2/../../../../
x86_64-suse
-linux/lib/
../lib64/
/usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2/../../../
x86_64-suse
-linux/4.1.2/ /usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2/../../../
../lib64/ /lib/x86_64-suse-linux/4.1.2/ /lib/../lib64/ /usr/lib/x86_64-suse-linux/4.1.2/ /usr/lib/../lib64/ /usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../x86_64-suse-linux/lib/ /usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../ /lib
/ /usr/lib/"
# 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 /usr/lib /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
=
""
...
...
@@ -7065,7 +7065,7 @@ include_expsyms=""
# ### BEGIN LIBTOOL TAG CONFIG: F77
# Libtool was configured on host
NWRW15
:
# Libtool was configured on host
deimos103
:
# Shell to use when invoking shell scripts.
SHELL
=
"/bin/sh"
...
...
@@ -7087,12 +7087,12 @@ fast_install=yes
# The host system.
host_alias
=
host
=
i686-pc
-linux-gnu
host
=
x86_64-unknown
-linux-gnu
host_os
=
linux-gnu
# The build system.
build_alias
=
build
=
i686-pc
-linux-gnu
build
=
x86_64-unknown
-linux-gnu
build_os
=
linux-gnu
# An echo program that does not interpret backslashes.
...
...
@@ -7103,7 +7103,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"
...
...
@@ -7112,13 +7112,13 @@ LTCFLAGS="-g -O2"
CC
=
"g77"
# Is the compiler the GNU C compiler?
with_gcc
=
yes
with_gcc
=
# 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"
...
...
@@ -7346,10 +7346,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
=
" /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/"
sys_lib_search_path_spec
=
" /usr/lib
64
/gcc
-lib/x86_64-suse
-linux/3.
3.5
/ /usr/lib/gcc/
x86_64-suse
-linux/3.
3.5
/ /usr/lib
64
/gcc
-lib/x86_64-suse
-linux/3.
3.5
/../../../../
x86_64-suse-linux/lib/x86_64-suse
-linux/3.
3.5
/ /usr/lib
64
/gcc
-lib/x86_64-suse
-linux/3.
3.5
/../../../../
x86_64-suse
-linux/lib/ /usr/lib
64
/gcc
-lib/x86_64-suse
-linux/3.
3.5
/../../../
x86_64-suse
-linux/3.
3.5
/ /usr/lib
64
/gcc
-lib/x86_64-suse
-linux/3.
3.5
/../../../ /lib/
x86_64-suse
-linux/3.
3.5
/ /lib/ /usr/lib/
x86_64-suse
-linux/3.
3.5
/ /usr/lib/"
# 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 /usr/lib /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/ElInfo2d.cc
View file @
159489a8
...
...
@@ -34,8 +34,8 @@ namespace AMDiS {
FUNCNAME
(
"ElInfo::fillMacroInfo()"
);
macroElement_
=
const_cast
<
MacroElement
*>
(
mel
);
element_
=
const_cast
<
Element
*>
(
mel
->
getElement
());
parent_
=
NULL
;
element_
=
const_cast
<
Element
*>
(
mel
->
getElement
());
parent_
=
NULL
;
level
=
0
;
if
(
fillFlag_
.
isSet
(
Mesh
::
FILL_COORDS
)
||
...
...
AMDiS/src/Element.cc
View file @
159489a8
...
...
@@ -14,11 +14,11 @@ namespace AMDiS {
if
(
!
elementData
)
return
-
1
;
ElementRegion_ED
*
red
=
dynamic_cast
<
ElementRegion_ED
*>
(
elementData
->
getElementData
(
ELEMENT_REGION
));
ElementRegion_ED
*
red
=
dynamic_cast
<
ElementRegion_ED
*>
(
elementData
->
getElementData
(
ELEMENT_REGION
));
if
(
red
)
{
return
red
->
getRegion
();
}
if
(
red
)
return
red
->
getRegion
();
return
-
1
;
}
...
...
@@ -52,16 +52,14 @@ namespace AMDiS {
// call destructor through Mesh::freeElement !!!
Element
::~
Element
()
{
if
(
child
[
0
])
{
if
(
child
[
0
])
DELETE
child
[
0
];
}
if
(
child
[
1
])
{
DELETE
child
[
1
];
}
if
(
child
[
1
])
DELETE
child
[
1
];
if
(
newCoord
)
{
DELETE
newCoord
;
}
if
(
newCoord
)
DELETE
newCoord
;
if
(
elementData
)
{
elementData
->
deleteDecorated
();
...
...
AMDiS/src/Element.h
View file @
159489a8
...
...
@@ -22,10 +22,6 @@
#ifndef AMDIS_ELEMENT_H
#define AMDIS_ELEMENT_H
// ============================================================================
// ===== includes =============================================================
// ============================================================================
#include
"Global.h"
#include
"RefinementManager.h"
#include
"Serializable.h"
...
...
@@ -34,23 +30,14 @@
namespace
AMDiS
{
// ============================================================================
// ===== forward declarations =================================================
// ============================================================================
class
Mesh
;
class
DOFAdmin
;
template
<
typename
T
>
class
WorldVector
;
class
CoarseningManager
;
template
<
typename
T
,
GeoIndex
d
>
class
FixVec
;
#define AMDIS_UNDEFINED 5
// ============================================================================
// ===== class Element ========================================================
// ============================================================================
/** \ingroup Triangulation
* \brief
* Base class for Line, Triangle, Tetrahedron
...
...
@@ -103,8 +90,6 @@ namespace AMDiS {
*/
Element
*
cloneWithDOFs
();
// ===== getting methods ======================================================
/** \name getting methods
* \{
*/
...
...
@@ -232,8 +217,6 @@ namespace AMDiS {
/** \} */
// ===== setting methods ======================================================
/** \name setting methods
* \{
*/
...
...
@@ -454,9 +437,9 @@ namespace AMDiS {
/// Deserialize an element from a file.
void
deserialize
(
std
::
istream
&
in
);
///
int
calcMemoryUsage
();
// ===== protected methods ====================================================
protected:
/// Sets Element's \ref dof pointer. Used by friend class Mesh.
void
setDOFPtrs
();
...
...
AMDiS/src/MacroElement.h
View file @
159489a8
...
...
@@ -40,10 +40,6 @@ namespace AMDiS {
template
<
typename
T
>
class
WorldVector
;
template
<
typename
T
>
class
DimVec
;
// ============================================================================
// ===== class MacroElement ===================================================
// ============================================================================
/** \ingroup Triangulation
* \brief
* MacroElements form the macro triangulation of a Mesh. In a MacroElement
...
...
@@ -64,8 +60,6 @@ namespace AMDiS {
///
MacroElement
&
operator
=
(
const
MacroElement
&
el
);
// ===== getting methods ======================================================
/** \name getting methods
* \{
*/
...
...
@@ -117,8 +111,6 @@ namespace AMDiS {
/** \} */
// ===== setting methods ======================================================
/** \name setting methods
* \{
*/
...
...
AMDiS/src/Mesh.cc
View file @
159489a8
...
...
@@ -23,7 +23,6 @@
#include
"Projection.h"
#include
"ElInfoStack.h"
namespace
AMDiS
{
#define TIME_USED(f,s) ((double)((s)-(f))/(double)CLOCKS_PER_SEC)
...
...
@@ -268,45 +267,91 @@ namespace AMDiS {
me
->
setIndex
(
macroElements
.
size
());
}
void
Mesh
::
removeMacroElement
(
MacroElement
*
me
)
void
Mesh
::
removeMacroElement
s
(
std
::
vector
<
MacroElement
*
>&
macros
)
{
FUNCNAME
(
"Mesh::removeMacroElement()"
);
TEST_EXIT
(
dim
==
2
)(
"Not yet implemented!
\n
"
);
bool
found
=
false
;
// Remove the macro element from mesh's list of all m
acro
e
lement
s.
for
(
std
::
deque
<
MacroElement
*>::
iterator
it
=
macroElements
.
begin
();
it
!=
macro
E
lements
.
end
();
++
it
)
{
if
(
*
i
t
=
=
m
e
)
{
macro
Elements
.
erase
(
it
,
it
+
1
);
found
=
true
;
break
;
}
// Map that stores for each dof pointer (which may have a list of dofs)
// all macro element indices that own the dof.
std
::
map
<
const
DegreeOfFreedom
*
,
std
::
set
<
M
acro
E
lement
*>
>
dofsOwner
;
// Determine all dof owner
macro
e
lements.
for
(
std
::
deque
<
MacroElement
*>::
iterator
macroIt
=
macroElements
.
begin
();
macroI
t
!
=
m
acroElements
.
end
();
++
macro
It
)
{
Element
*
el
=
(
*
macroIt
)
->
getElement
()
;
for
(
int
i
=
0
;
i
<
3
;
i
++
)
dofsOwner
[
el
->
getDOF
(
i
)].
insert
(
*
macroIt
);
}
TEST_EXIT
(
found
)(
"Cannot find MacroElement that should be removed!
\n
"
);
// Go through all neighbours of the macro element and remove this macro element
// to be neighbour of some other macro element.
for
(
int
i
=
0
;
i
<
dim
;
i
++
)
{
if
(
me
->
getNeighbour
(
i
))
{
for
(
int
j
=
0
;
j
<
dim
;
j
++
)
{
if
(
me
->
getNeighbour
(
i
)
->
getNeighbour
(
j
)
==
me
)
{
me
->
getNeighbour
(
i
)
->
setNeighbour
(
j
,
NULL
);
// Remove all the given macro elements.
for
(
std
::
vector
<
MacroElement
*>::
iterator
macroIt
=
macros
.
begin
();
macroIt
!=
macros
.
end
();
++
macroIt
)
{
bool
found
=
false
;
// Remove the macro element from mesh's list of all macro elements.
for
(
std
::
deque
<
MacroElement
*>::
iterator
it
=
macroElements
.
begin
();
it
!=
macroElements
.
end
();
++
it
)
{
if
(
*
it
==
*
macroIt
)
{
macroElements
.
erase
(
it
,
it
+
1
);
found
=
true
;
break
;
}
}
TEST_EXIT
(
found
)(
"Cannot find MacroElement that should be removed!
\n
"
);
// Go through all neighbours of the macro element and remove this macro element
// to be neighbour of some other macro element.
for
(
int
i
=
0
;
i
<=
dim
;
i
++
)
{
if
((
*
macroIt
)
->
getNeighbour
(
i
))
{
for
(
int
j
=
0
;
j
<=
dim
;
j
++
)
{
if
((
*
macroIt
)
->
getNeighbour
(
i
)
->
getNeighbour
(
j
)
==
*
macroIt
)
{
(
*
macroIt
)
->
getNeighbour
(
i
)
->
setNeighbour
(
j
,
NULL
);
}
}
}
else
{
// There is no neighbour at this edge, so we have to decrease the number
// of edges in the mesh.
nEdges
--
;
}
}
nLeaves
--
;
nElements
--
;
// Remove this macro element from the dof owner list.
for
(
std
::
map
<
const
DegreeOfFreedom
*
,
std
::
set
<
MacroElement
*>
>::
iterator
dofsIt
=
dofsOwner
.
begin
();
dofsIt
!=
dofsOwner
.
end
();
++
dofsIt
)
{
std
::
set
<
MacroElement
*>::
iterator
mIt
=
dofsIt
->
second
.
find
(
*
macroIt
);
if
(
mIt
!=
dofsIt
->
second
.
end
())
dofsIt
->
second
.
erase
(
mIt
);
}
// And remove the macro element from memory
delete
*
macroIt
;
}
int
nRemainDofs
=
0
;
// Check now all the dofs, that have no owner anymore and therefore have to
// be removed.
for
(
std
::
map
<
const
DegreeOfFreedom
*
,
std
::
set
<
MacroElement
*>
>::
iterator
dofsIt
=
dofsOwner
.
begin
();
dofsIt
!=
dofsOwner
.
end
();
++
dofsIt
)
{
if
(
dofsIt
->
second
.
size
()
==
0
)
{
dofsOwner
.
erase
(
dofsIt
++
);
}
else
{
// There is no neighbour at this edge, so we have to decrease the number
// of edges in the mesh.
nEdges
--
;
nRemainDofs
++
;
}
}
nLeaves
--
;
nElements
--
;
nVertices
=
nRemainDofs
;
}
int
Mesh
::
traverse
(
int
level
,
Flag
flag
,
int
(
*
el_fct
)(
ElInfo
*
))
...
...
AMDiS/src/Mesh.h
View file @
159489a8
...
...
@@ -415,11 +415,11 @@ namespace AMDiS {
void
addMacroElement
(
MacroElement
*
me
);
/* \brief
* Removes a macro element from the mesh. This works only for the case,
that
* there are no global or local refinements, i.e., all macro elements have
no
* children.
* Removes a
set of
macro element
s
from the mesh. This works only for the case,
*
that
there are no global or local refinements, i.e., all macro elements have
*
no
children.
*/
void
removeMacroElement
(
MacroElement
*
me
);
void
removeMacroElement
s
(
std
::
vector
<
MacroElement
*
>&
macros
);
/// Frees the array of DOF pointers (see \ref createDOFPtrs)
void
freeDOFPtrs
(
DegreeOfFreedom
**
ptrs
);
...
...
AMDiS/src/ParallelDomainProblem.cc
View file @
159489a8
...
...
@@ -18,6 +18,7 @@ namespace AMDiS {
:
iterationIF
(
iIF
),
timeIF
(
tIF
),
mesh
(
m
),
initialPartitionMesh
(
true
),
nRankDOFs
(
0
)
{
mpiRank
=
MPI
::
COMM_WORLD
.
Get_rank
();
...
...
@@ -95,23 +96,20 @@ namespace AMDiS {
}
}
bool
removed
=
false
;
do
{
removed
=
false
;
for
(
std
::
deque
<
MacroElement
*>::
iterator
it
=
mesh
->
firstMacroElement
();
it
!=
mesh
->
endOfMacroElements
();
++
it
)
{
PartitionElementData
*
partitionData
=
dynamic_cast
<
PartitionElementData
*>
((
*
it
)
->
getElement
()
->
getElementData
(
PARTITION_ED
));
if
(
partitionData
->
getPartitionStatus
()
!=
IN
)
{
mesh
->
removeMacroElement
(
*
it
);
removed
=
true
;
break
;
}
std
::
vector
<
MacroElement
*>
macrosToRemove
;
for
(
std
::
deque
<
MacroElement
*>::
iterator
it
=
mesh
->
firstMacroElement
();
it
!=
mesh
->
endOfMacroElements
();
++
it
)
{
PartitionElementData
*
partitionData
=
dynamic_cast
<
PartitionElementData
*>
((
*
it
)
->
getElement
()
->
getElementData
(
PARTITION_ED
));
if
(
partitionData
->
getPartitionStatus
()
!=
IN
)
{
macrosToRemove
.
push_back
(
*
it
);
}
}
while
(
removed
);
}
mesh
->
removeMacroElements
(
macrosToRemove
);
int
*
gOrder
=
(
int
*
)(
malloc
(
sizeof
(
int
)
*
rankDofs
.
size
()));
int
*
lOrder
=
(
int
*
)(
malloc
(
sizeof
(
int
)
*
rankDofs
.
size
()));
...
...
AMDiS/src/RefinementManager.cc
View file @
159489a8
...
...
@@ -34,10 +34,8 @@ namespace AMDiS {
return
static_cast
<
Flag
>
(
0
);
globalMark
=
mark
;
aMesh
->
traverse
(
-
1
,
Mesh
::
CALL_LEAF_EL
|
Mesh
::
FILL_COORDS
|
Mesh
::
FILL_BOUND
,
aMesh
->
traverse
(
-
1
,
Mesh
::
CALL_LEAF_EL
|
Mesh
::
FILL_COORDS
|
Mesh
::
FILL_BOUND
,
globalRefineFct
);
return
refineMesh
(
aMesh
);
}
...
...
@@ -51,23 +49,22 @@ namespace AMDiS {
mesh
=
aMesh
;
int
n_elements
=
mesh
->
getNumberOfLeaves
();
ElInfo
*
el_info
;
ElInfo
*
elInfo
;
newCoords
=
false
;
stack
=
NEW
TraverseStack
;
doMoreRecursiveRefine
=
true
;
while
(
doMoreRecursiveRefine
)
{
doMoreRecursiveRefine
=
false
;
el
_i
nfo
=
stack
->
traverseFirst
(
mesh
,
-
1
,
Mesh
::
CALL_LEAF_EL
|
Mesh
::
FILL_NEIGH
|
Mesh
::
FILL_BOUND
);
while
(
el
_i
nfo
)
{
if
(
el
_i
nfo
->
getElement
()
->
getMark
()
>
0
)
{
el
I
nfo
=
stack
->
traverseFirst
(
mesh
,
-
1
,
Mesh
::
CALL_LEAF_EL
|
Mesh
::
FILL_NEIGH
|
Mesh
::
FILL_BOUND
);
while
(
el
I
nfo
)
{
if
(
el
I
nfo
->
getElement
()
->
getMark
()
>
0
)
{
doMoreRecursiveRefine
=
doMoreRecursiveRefine
||
(
el
_i
nfo
->
getElement
()
->
getMark
()
>
1
);
el
_i
nfo
=
refineFunction
(
el
_i
nfo
);
}
el
_i
nfo
=
stack
->
traverseNext
(
el
_i
nfo
);
(
el
I
nfo
->
getElement
()
->
getMark
()
>
1
);
el
I
nfo
=
refineFunction
(
el
I
nfo
);
}
el
I
nfo
=
stack
->
traverseNext
(
el
I
nfo
);
}
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment