Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Aland, Sebastian
amdis
Commits
e41a4ba0
Commit
e41a4ba0
authored
Jun 09, 2009
by
Thomas Witkowski
Browse files
bugfix: solution vector was not passed to solver library.
parent
49888023
Changes
4
Show whitespace changes
Inline
Side-by-side
AMDiS/libtool
View file @
e41a4ba0
...
...
@@ -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
=
"/
usr/
bin/sed"
SED
=
"/bin/sed"
# Sed that helps us avoid accidentally triggering echo(1) options like -n.
Xsed
=
"/
usr/
bin/sed -e 1s/^X//"
Xsed
=
"/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
p2q023
:
# Libtool was configured on host
NWRW15
:
# Shell to use when invoking shell scripts.
SHELL
=
"/bin/sh"
...
...
@@ -66,12 +66,12 @@ fast_install=yes
# The host system.
host_alias
=
host
=
x86_64-unknown
-linux-gnu
host
=
i686-pc
-linux-gnu
host_os
=
linux-gnu
# The build system.
build_alias
=
build
=
x86_64-unknown
-linux-gnu
build
=
i686-pc
-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
=
"
mpi
cc"
LTCC
=
"
g
cc"
# LTCC compiler flags.
LTCFLAGS
=
"-g -O2"
# A language-specific compiler.
CC
=
"
mpi
cc"
CC
=
"
g
cc"
# Is the compiler the GNU C compiler?
with_gcc
=
yes
gcc_dir
=
`
gcc
-print-file-name
=
.
|
/usr
/bin/sed
's,/\.$,,'
`
gcc_dir
=
`
gcc
-print-file-name
=
.
| /bin/sed
's,/\.$,,'
`
gcc_ver
=
`
gcc
-dumpversion
`
# An ERE matcher.
EGREP
=
"grep -E"
# The linker used to build libraries.
LD
=
"/usr/bin/ld
-m elf_x86_64
"
LD
=
"/usr/bin/ld"
# 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
=
""
link_static_flag
=
"
-static
"
# 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
"
/lib64 /usr/lib64 /usr/local/lib64
"
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
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"
`
# Run-time system search path for libraries
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/libso
"
sys_lib_dlsearch_path_spec
=
"/lib /usr/lib /usr/
lib/octave-
2.9.9 /
usr/lib/qt-3.3/lib
"
# Fix the shell variable $srcfile for the compiler.
fix_srcfile_path
=
""
...
...
@@ -6763,7 +6763,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
p2q023
:
# Libtool was configured on host
NWRW15
:
# Shell to use when invoking shell scripts.
SHELL
=
"/bin/sh"
...
...
@@ -6785,12 +6785,12 @@ fast_install=yes
# The host system.
host_alias
=
host
=
x86_64-unknown
-linux-gnu
host
=
i686-pc
-linux-gnu
host_os
=
linux-gnu
# The build system.
build_alias
=
build
=
x86_64-unknown
-linux-gnu
build
=
i686-pc
-linux-gnu
build_os
=
linux-gnu
# An echo program that does not interpret backslashes.
...
...
@@ -6801,25 +6801,25 @@ AR="ar"
AR_FLAGS
=
"cru"
# A C compiler.
LTCC
=
"
mpi
cc"
LTCC
=
"
g
cc"
# LTCC compiler flags.
LTCFLAGS
=
"-g -O2"
# A language-specific compiler.
CC
=
"
mpiCC
"
CC
=
"
g++
"
# Is the compiler the GNU C compiler?
with_gcc
=
yes
gcc_dir
=
`
gcc
-print-file-name
=
.
|
/usr
/bin/sed
's,/\.$,,'
`
gcc_dir
=
`
gcc
-print-file-name
=
.
| /bin/sed
's,/\.$,,'
`
gcc_ver
=
`
gcc
-dumpversion
`
# An ERE matcher.
EGREP
=
"grep -E"
# The linker used to build libraries.
LD
=
"/usr/bin/ld
-m elf_x86_64
"
LD
=
"/usr/bin/ld"
# Whether we need hard or soft links.
LN_S
=
"ln -s"
...
...
@@ -6893,7 +6893,7 @@ dlopen_self=unknown
dlopen_self_static
=
unknown
# Compiler flag to prevent dynamic linking.
link_static_flag
=
""
link_static_flag
=
"
-static
"
# Compiler flag to turn off builtin functions.
no_builtin_flag
=
" -fno-builtin"
...
...
@@ -6948,11 +6948,11 @@ striplib="strip --strip-unneeded"
# Dependencies to place before the objects being linked to create a
# shared library.
predep_objects
=
`
echo
"/usr/lib/
../lib64/crti.o /work/licsoft/compilers/gcc/4.2.4/lib/gcc/x86_64-unknown-linux-gnu/4.2.4
/crtbeginS.o"
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
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"
`
# Dependencies to place after the objects being linked to create a
# shared library.
postdep_objects
=
`
echo
"/
work/licsoft/compilers/gcc/4.2.4/lib/gcc/x86_64-unknown-linux-gnu/4.2.4/crtendS.o /usr/lib/../lib64
/crtn.o"
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
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"
`
# Dependencies to place before the objects being linked to create a
# shared library.
...
...
@@ -6960,11 +6960,11 @@ predeps=""
# Dependencies to place after the objects being linked to create a
# shared library.
postdeps
=
"
-lmpi_cxx -lmpi -lopen-rte -lopen-pal -libverbs -lrt -lnuma -ldl -lnsl -lutil -ldl
-lstdc++ -lm -lgcc_s -lc -lgcc_s"
postdeps
=
"-lstdc++ -lm -lgcc_s -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
64 -L/licsoft/libraries/openmpi/1.2.6/64bit/lib -L/work/licsoft/compilers/gcc/4.2.4/lib/gcc/x86_64-unknown-linux-gnu/4.2.4 -L/work/licsoft/compilers/gcc/4.2.4/lib/gcc/x86_64-unknown-linux-gnu/4.2.4/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/work/licsoft/compilers/gcc/4.2.4/lib/gcc/x86_64-unknown-linux-gnu/4.2.4
/../../.."
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
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"
`
# Method to check whether dependent libraries are shared objects.
deplibs_check_method
=
"pass_all"
...
...
@@ -7044,10 +7044,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
"
/lib64 /usr/lib64 /usr/local/lib64
"
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
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"
`
# Run-time system search path for libraries
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/libso
"
sys_lib_dlsearch_path_spec
=
"/lib /usr/lib /usr/
lib/octave-
2.9.9 /
usr/lib/qt-3.3/lib
"
# Fix the shell variable $srcfile for the compiler.
fix_srcfile_path
=
""
...
...
@@ -7071,7 +7071,7 @@ include_expsyms=""
# ### BEGIN LIBTOOL TAG CONFIG: F77
# Libtool was configured on host
p2q023
:
# Libtool was configured on host
NWRW15
:
# Shell to use when invoking shell scripts.
SHELL
=
"/bin/sh"
...
...
@@ -7093,12 +7093,12 @@ fast_install=yes
# The host system.
host_alias
=
host
=
x86_64-unknown
-linux-gnu
host
=
i686-pc
-linux-gnu
host_os
=
linux-gnu
# The build system.
build_alias
=
build
=
x86_64-unknown
-linux-gnu
build
=
i686-pc
-linux-gnu
build_os
=
linux-gnu
# An echo program that does not interpret backslashes.
...
...
@@ -7109,7 +7109,7 @@ AR="ar"
AR_FLAGS
=
"cru"
# A C compiler.
LTCC
=
"
mpi
cc"
LTCC
=
"
g
cc"
# LTCC compiler flags.
LTCFLAGS
=
"-g -O2"
...
...
@@ -7118,16 +7118,16 @@ LTCFLAGS="-g -O2"
CC
=
"g77"
# Is the compiler the GNU C compiler?
with_gcc
=
with_gcc
=
yes
gcc_dir
=
`
gcc
-print-file-name
=
.
|
/usr
/bin/sed
's,/\.$,,'
`
gcc_dir
=
`
gcc
-print-file-name
=
.
| /bin/sed
's,/\.$,,'
`
gcc_ver
=
`
gcc
-dumpversion
`
# An ERE matcher.
EGREP
=
"grep -E"
# The linker used to build libraries.
LD
=
"/usr/bin/ld
-m elf_x86_64
"
LD
=
"/usr/bin/ld"
# Whether we need hard or soft links.
LN_S
=
"ln -s"
...
...
@@ -7355,10 +7355,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
"
/lib64 /usr/lib64 /usr/local/lib64
"
|
$SED
-e
"s@
${
gcc_dir
}
@
\$
{gcc_dir}@g;s@
${
gcc_ver
}
@
\$
{gcc_ver}@g"
`
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"
`
# Run-time system search path for libraries
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/libso
"
sys_lib_dlsearch_path_spec
=
"/lib /usr/lib /usr/
lib/octave-
2.9.9 /
usr/lib/qt-3.3/lib
"
# Fix the shell variable $srcfile for the compiler.
fix_srcfile_path
=
""
...
...
AMDiS/src/MacroReader.cc
View file @
e41a4ba0
...
...
@@ -444,9 +444,9 @@ namespace AMDiS {
{
for
(
int
i
=
0
;
i
<
N_KEYS
;
i
++
)
if
(
!
strcmp
(
keys
[
i
],
key
))
return
(
i
)
;
return
i
;
return
(
-
1
)
;
return
-
1
;
}
#include <ctype.h>
...
...
@@ -480,8 +480,8 @@ namespace AMDiS {
int
dim
;
int
dow
,
nv
,
ne
,
j
,
k
;
double
dbl
;
char
name
[
128
],
line
[
256
];
int
line_no
,
n_keys
,
i_key
,
sort_key
[
N_KEYS
],
nv_key
,
ne_key
;
char
line
[
256
];
int
line_no
,
n_keys
,
sort_key
[
N_KEYS
],
nv_key
,
ne_key
;
int
key_def
[
N_KEYS
]
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
};
const
char
*
key
;
DimVec
<
int
>
*
ind
=
NULL
;
...
...
@@ -492,7 +492,6 @@ namespace AMDiS {
file
=
fopen
(
filename
,
"r"
);
TEST_EXIT
(
file
)(
"cannot open file %s
\n
"
,
filename
);
strncpy
(
name
,
filename
,
127
);
/****************************************************************************/
/* looking for all keys in the macro file ... */
...
...
@@ -503,23 +502,27 @@ namespace AMDiS {
line_no
++
;
if
(
!
strchr
(
line
,
':'
))
continue
;
key
=
read_key
(
line
);
i_key
=
get_key_no
(
key
);
int
i_key
=
get_key_no
(
key
);
TEST_EXIT
(
i_key
>=
0
)
(
"macro file %s must not contain key %s on line %d
\n
"
,
name
,
key
,
line_no
);
TEST_EXIT
(
!
key_def
[
i_key
])
(
"key %s defined second time on line %d in file %s
\n
"
);
filename
,
key
,
line_no
);
TEST_EXIT
(
!
key_def
[
i_key
])(
"key %s defined second time on line %d in file %s
\n
"
);
sort_key
[
n_keys
++
]
=
i_key
;
key_def
[
i_key
]
=
true
;
}
fclose
(
file
);
for
(
i_key
=
0
;
i_key
<
N_MIN_KEYS
;
i_key
++
)
{
/*******************************************************************************/
/* Test, if there is data for every key and if all is defined in right order. */
/*******************************************************************************/
for
(
int
i_key
=
0
;
i_key
<
N_MIN_KEYS
;
i_key
++
)
{
for
(
j
=
0
;
j
<
n_keys
;
j
++
)
if
(
sort_key
[
j
]
==
i_key
)
break
;
TEST_EXIT
(
j
<
n_keys
)(
"You do not have specified data for %s in %s
\n
"
,
keys
[
i_key
],
name
);
keys
[
i_key
],
file
name
);
for
(
j
=
0
;
j
<
n_keys
;
j
++
)
if
(
sort_key
[
j
]
==
2
)
break
;
...
...
@@ -528,7 +531,7 @@ namespace AMDiS {
if
(
sort_key
[
j
]
==
3
)
break
;
ne_key
=
j
;
switch
(
i_key
)
{
switch
(
i_key
)
{
case
0
:
case
1
:
TEST_EXIT
(
sort_key
[
i_key
]
<
2
)
...
...
@@ -537,59 +540,64 @@ namespace AMDiS {
case
4
:
TEST_EXIT
(
nv_key
<
i_key
)
(
"Before reading data for %s, you have to specify the %s in file
\n
"
,
keys
[
4
],
keys
[
2
],
name
);
keys
[
4
],
keys
[
2
],
file
name
);
break
;
case
5
:
TEST_EXIT
(
nv_key
<
i_key
&&
ne_key
<
i_key
)
(
"Before reading data for %s, you have to specify the %s and %s in file %s
\n
"
,
keys
[
5
],
keys
[
3
],
keys
[
2
],
name
);
keys
[
5
],
keys
[
3
],
keys
[
2
],
file
name
);
case
6
:
case
7
:
case
8
:
TEST_EXIT
(
ne_key
<
i_key
)
(
"Before reading data for %s, you have to specify the %s in file %s
\n
"
,
keys
[
i_key
],
keys
[
3
],
name
);
keys
[
i_key
],
keys
[
3
],
file
name
);
}
}
for
(
i_key
=
0
;
i_key
<
N_KEYS
;
i_key
++
)
for
(
int
i_key
=
0
;
i_key
<
N_KEYS
;
i_key
++
)
key_def
[
i_key
]
=
false
;
/****************************************************************************/
/* and now, reading data ... */
/****************************************************************************/
file
=
fopen
(
name
,
"r"
);
TEST_EXIT
(
file
)(
"cannot open file %s
\n
"
,
name
);
file
=
fopen
(
file
name
,
"r"
);
TEST_EXIT
(
file
)(
"cannot open file %s
\n
"
,
file
name
);
int
result
;
for
(
i_key
=
0
;
i_key
<
n_keys
;
i_key
++
)
{
for
(
int
i_key
=
0
;
i_key
<
n_keys
;
i_key
++
)
{
switch
(
sort_key
[
i_key
])
{
switch
(
sort_key
[
i_key
])
{
case
0
:
// line "DIM"
result
=
fscanf
(
file
,
"%*s %d"
,
&
dim
);
TEST_EXIT
(
result
==
1
)
(
"cannot read DIM correctly in file %s
\n
"
,
name
);
TEST_EXIT
(
result
==
1
)(
"cannot read DIM correctly in file %s
\n
"
,
filename
);
ind
=
new
DimVec
<
int
>
(
dim
,
NO_INIT
);
key_def
[
0
]
=
true
;
break
;
case
1
:
// line "DIM_OF_WORLD"
result
=
fscanf
(
file
,
"%*s %d"
,
&
dow
);
TEST_EXIT
(
result
==
1
)
(
"cannot read Global::getGeo(WORLD) correctly in file %s
\n
"
,
name
);
(
"cannot read Global::getGeo(WORLD) correctly in file %s
\n
"
,
file
name
);
TEST_EXIT
(
dow
==
Global
::
getGeo
(
WORLD
))
(
"dimension of world = %d != Global::getGeo(WORLD) = %d
\n
"
,
dow
,
Global
::
getGeo
(
WORLD
));
key_def
[
1
]
=
true
;
break
;
case
2
:
// line "number of vertices"
result
=
fscanf
(
file
,
"%*s %*s %*s %d"
,
&
nv
);
TEST_EXIT
(
result
==
1
)
(
"cannot read number of vertices correctly in file %s
\n
"
,
name
);
(
"cannot read number of vertices correctly in file %s
\n
"
,
file
name
);
TEST_EXIT
(
nv
>
0
)
(
"number of vertices = %d must be bigger than 0
\n
"
,
nv
);
...
...
@@ -597,10 +605,12 @@ namespace AMDiS {
if
(
key_def
[
3
])
fill
(
mesh
,
ne
,
nv
);
break
;
case
3
:
// line "number of elements"
result
=
fscanf
(
file
,
"%*s %*s %*s %d"
,
&
ne
);
TEST_EXIT
(
result
==
1
)
(
"cannot read number of elements correctly in file %s
\n
"
,
name
);
(
"cannot read number of elements correctly in file %s
\n
"
,
file
name
);
TEST_EXIT
(
ne
>
0
)
(
"number of elements = %d must be bigger than 0
\n
"
,
ne
);
...
...
@@ -608,20 +618,25 @@ namespace AMDiS {
if
(
key_def
[
2
])
fill
(
mesh
,
ne
,
nv
);
break
;
case
4
:
// block "vertex coordinates"
fscanf
(
file
,
"%*s %*s"
);
for
(
int
i
=
0
;
i
<
nv
;
i
++
)
{
for
(
j
=
0
;
j
<
Global
::
getGeo
(
WORLD
)
;
j
++
)
{
result
=
fscanf
(
file
,
"%lf"
,
&
dbl
);
TEST_EXIT
(
result
==
1
)
(
"error while reading coordinates, check file %s
\n
"
,
name
);
(
"error while reading coordinates, check file %s
\n
"
,
file
name
);
coords
[
i
][
j
]
=
dbl
;
}
}
key_def
[
4
]
=
true
;
break
;
case
5
:
// block "element vertices"
fscanf
(
file
,
"%*s %*s"
);
/****************************************************************************/
/* global number of vertices on a single element */
/****************************************************************************/
...
...
@@ -629,7 +644,7 @@ namespace AMDiS {
for
(
int
i
=
0
;
i
<
ne
;
i
++
)
{
result
=
read_indices
(
file
,
*
ind
);
TEST_EXIT
(
result
)
(
"cannot read vertex indices of element %d in file %s
\n
"
,
i
,
name
);
(
"cannot read vertex indices of element %d in file %s
\n
"
,
i
,
file
name
);
for
(
k
=
0
;
k
<
mesh
->
getGeo
(
VERTEX
);
k
++
)
mel_vertex
[
i
][
k
]
=
(
*
ind
)[
k
];
...
...
@@ -637,8 +652,11 @@ namespace AMDiS {
key_def
[
5
]
=
true
;
break
;
case
6
:
// block "element boundaries"
fscanf
(
file
,
"%*s %*s"
);
/****************************************************************************/
/* MEL boundary pointers */
/****************************************************************************/
...
...
@@ -647,7 +665,7 @@ namespace AMDiS {
result
=
read_indices
(
file
,
*
ind
);
TEST_EXIT
(
result
)
(
"cannot read boundary type of element %d in file %s
\n
"
,
i
,
name
);
(
"cannot read boundary type of element %d in file %s
\n
"
,
i
,
file
name
);
// fill boundary of macro-element
MacroReader
::
fillMelBoundary
(
mesh
,
...
...
@@ -660,8 +678,11 @@ namespace AMDiS {
bound_set
=
true
;
key_def
[
6
]
=
true
;
break
;
case
7
:
// block "element neighbours"
fscanf
(
file
,
"%*s %*s"
);
/****************************************************************************/
/* fill MEL neighbour pointers: */
/* if they are specified in the file: read them from file, */
...
...
@@ -671,11 +692,11 @@ namespace AMDiS {
for
(
int
i
=
0
;
i
<
ne
;
i
++
)
{
// neighbour information about ith element
if
(
read_indices
(
file
,
*
ind
))
if
(
read_indices
(
file
,
*
ind
))
{
MacroReader
::
fillMelNeigh
(
mel
[
i
],
mel
,
VecConv
<
int
,
NEIGH
,
PARTS
>::
convertVec
((
*
ind
),
mesh
));
else
{
}
else
{
neigh_set
=
false
;
/* setting of neighbours fails :-( */
break
;
}
...
...
@@ -683,7 +704,9 @@ namespace AMDiS {
key_def
[
7
]
=
true
;
break
;
case
8
:
// block "element type"
fscanf
(
file
,
"%*s %*s"
);
/****************************************************************************/
/* MEL elType */
...
...
@@ -695,34 +718,33 @@ namespace AMDiS {
for
(
int
i
=
0
;
i
<
ne
;
i
++
)
{
result
=
fscanf
(
file
,
"%d"
,
&
j
);
TEST_EXIT
(
result
==
1
)
(
"cannot read elType of element %d in file %s
\n
"
,
i
,
name
);
if
(
dim
==
3
)
{
(
"cannot read elType of element %d in file %s
\n
"
,
i
,
filename
);
if
(
dim
==
3
)
(
mel
)[
i
]
->
elType
=
j
;
}
}
key_def
[
8
]
=
true
;
break
;
case
9
:
// block "projections"
{
fscanf
(
file
,
"%*s"
);
int
numFaces
=
mesh
->
getGeo
(
FACE
);
int
numEdgesAtBoundary
=
0
;
for
(
k
=
1
;
k
<
dim
;
k
++
)
{
for
(
k
=
1
;
k
<
dim
;
k
++
)
numEdgesAtBoundary
+=
k
;
}
for
(
int
i
=
0
;
i
<
ne
;
i
++
)
{
result
=
read_indices
(
file
,
*
ind
);
TEST_EXIT
(
result
)
(
"cannot read boundary projector of element %d in file %s
\n
"
,
i
,
name
);
(
"cannot read boundary projector of element %d in file %s
\n
"
,
i
,
file
name
);
Projection
*
projector
=
Projection
::
getProjection
((
*
ind
)[
0
]);
if
(
projector
&&
projector
->
getType
()
==
VOLUME_PROJECTION
)
{
if
(
projector
&&
projector
->
getType
()
==
VOLUME_PROJECTION
)
{
mel
[
i
]
->
setProjection
(
0
,
projector
);
}
else
{
// boundary projection
for
(
j
=
0
;
j
<
mesh
->
getGeo
(
NEIGH
);
j
++
)
{
...
...
@@ -742,7 +764,9 @@ namespace AMDiS {
}
key_def
[
9
]
=
true
;
break
;
case
10
:
// block "element region"
fscanf
(
file
,
"%*s %*s"
);
/****************************************************************************/
/* MEL regions */
...
...
@@ -751,7 +775,7 @@ namespace AMDiS {
for
(
int
i
=
0
;
i
<
ne
;
i
++
)
{
result
=
fscanf
(
file
,
"%d"
,
&
j
);
TEST_EXIT
(
result
==
1
)
(
"cannot read region of element %d in file %s
\n
"
,
i
,
name
);
(
"cannot read region of element %d in file %s
\n
"
,
i
,
file
name
);
if
(
j
>=
0
)
{
Element
*
el
=
mel
[
i
]
->
getElement
();
ElementRegion_ED
*
elementRegion
=
...
...
@@ -762,17 +786,19 @@ namespace AMDiS {
}
key_def
[
10
]
=
true
;
break
;
case
11
:
// block "surface region"
fscanf
(
file
,
"%*s %*s"
);
for
(
int
i
=
0
;
i
<
ne
;
i
++
)
{
result
=
read_indices
(
file
,
*
ind
);
TEST_EXIT
(
result
)
(
"cannot read surface regions of element %d in file %s
\n
"
,
i
,
name
);
(
"cannot read surface regions of element %d in file %s
\n
"
,
i
,
file
name
);
Element
*
el
=
mel
[
i
]
->
getElement
();
for
(
j
=
0
;
j
<
mesh
->
getGeo
(
NEIGH
);
j
++
)
{
if
((
*
ind
)[
j
]
>=
0
)
{
for
(
j
=
0
;
j
<
mesh
->
getGeo
(
NEIGH
);
j
++
)
{
if
((
*
ind
)[
j
]
>=
0
)
{
SurfaceRegion_ED
*
surfaceRegion
=
new
SurfaceRegion_ED
(
el
->
getElementData
());
surfaceRegion
->
setSide
(
j
);
...
...
@@ -783,18 +809,21 @@ namespace AMDiS {
}
key_def
[
11
]
=
true
;
break
;
case
12
:
// line "mesh name"
fscanf
(
file
,
"%*s %*s %*s"
);
break
;
case
13
:
// line "time"
fscanf
(
file
,
"%*s %*s"
);
break
;
}
}
if
(
ind
)
{
if
(
ind
)
delete
ind
;
}
fclose
(
file
);
}
...
...
AMDiS/src/MacroReader.h
View file @
e41a4ba0
AMDiS/src/OEMSolver.h
View file @
e41a4ba0
...
...
@@ -127,14 +127,17 @@ namespace AMDiS {
// Copy rhs vector
int
counter
=
0
;
DOFVector
<
double
>::
Iterator
it_b
(
&
b
,
USED_DOFS
);
for
(
it_b
.
reset
();
!
it_b
.
end
();
++
it_b
)
bb
[
counter
++
]
=
*
it_b
;
DOFVector
<
double
>::
Iterator
it_x
(
&
x
,
USED_DOFS
);
for
(
it_b
.
reset
(),
it_x
.
reset
();
!
it_b
.
end
();
++
it_b
,
++
it_x
)
{
bb
[
counter
]
=
*
it_b
;
xx
[
counter
]
=
*
it_x
;
counter
++
;
}
int
r
=
solveSystem
(
A
.
getMatrix
(),
xx
,
bb
);
// Copy solution vector to DOFVector
counter
=
0
;