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
Aland, Sebastian
amdis
Commits
53be46af
Commit
53be46af
authored
Dec 08, 2010
by
Thomas Witkowski
Browse files
Fixed the multi-mesh bug.
parent
e25a04bd
Changes
7
Hide whitespace changes
Inline
Side-by-side
AMDiS/libtool
View file @
53be46af
...
...
@@ -51,32 +51,32 @@ build_old_libs=yes
pic_mode
=
default
# Whether or not to optimize for fast installation.
fast_install
=
needles
s
fast_install
=
ye
s
# The host system.
host_alias
=
host
=
x86_64-unknown
-linux-gnu
host
=
i686-redhat
-linux-gnu
host_os
=
linux-gnu
# The build system.
build_alias
=
build
=
x86_64-unknown
-linux-gnu
build
=
i686-redhat
-linux-gnu
build_os
=
linux-gnu
# 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
=
"
$SED
-e 1s/^X//"
# A grep program that handles long lines.
GREP
=
"/
usr/
bin/grep"
GREP
=
"/bin/grep"
# An ERE matcher.
EGREP
=
"/
usr/
bin/grep -E"
EGREP
=
"/bin/grep -E"
# A literal string matcher.
FGREP
=
"/
usr/
bin/grep -F"
FGREP
=
"/bin/grep -F"
# A BSD- or MS-compatible name lister.
NM
=
"/usr/bin/nm -B"
...
...
@@ -128,7 +128,7 @@ old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
old_postuninstall_cmds
=
""
# A C compiler.
LTCC
=
"
/licsoft/libraries/openmpi/1.2.6/64bit/bin/mpi
cc"
LTCC
=
"
g
cc"
# LTCC compiler flags.
LTCFLAGS
=
"-g -O2"
...
...
@@ -204,7 +204,7 @@ runpath_var=LD_RUN_PATH
shlibpath_var
=
LD_LIBRARY_PATH
# Is shlibpath searched before the hard-coded library search path?
shlibpath_overrides_runpath
=
yes
shlibpath_overrides_runpath
=
no
# Format of library name prefix.
libname_spec
=
"lib
\$
name"
...
...
@@ -233,10 +233,10 @@ finish_eval=""
hardcode_into_libs
=
yes
# Compile-time system search path for libraries.
sys_lib_search_path_spec
=
"/u
sr/lib64/gcc/x86_64-suse-linux/4.1.2 /usr/lib64 /lib64 /fastfs/wir/local/lib /usr/x86_64-suse-linux
/lib"
sys_lib_search_path_spec
=
"/u
/witkowski/local/lib /u/witkowski/local/intel/mkl/10.0.1.014/lib/32 /usr/lib/gcc/i386-redhat-linux/4.1.2 /usr/lib
/lib"
# Run-time system search path for libraries.
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.99 /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/mysql /usr/lib/octave-2.9.9 /usr/lib/qt-3.3/lib /usr/lib/qt4/lib /usr/lib/xulrunner-1.9.2
"
# Whether dlopen is supported.
dlopen_support
=
unknown
...
...
@@ -253,13 +253,13 @@ striplib="strip --strip-unneeded"
# The linker used to build libraries.
LD
=
"/usr/
x86_64-suse-linux/bin/ld -m elf_x86_64
"
LD
=
"/usr/
bin/ld
"
# Commands used to build an old-style archive.
old_archive_cmds
=
"
\$
AR
\$
AR_FLAGS
\$
oldlib
\$
oldobjs~
\$
RANLIB
\$
oldlib"
# A language specific compiler.
CC
=
"
/licsoft/libraries/openmpi/1.2.6/64bit/bin/mpi
cc"
CC
=
"
g
cc"
# Is the compiler the GNU compiler?
with_gcc
=
yes
...
...
@@ -274,7 +274,7 @@ wl="-Wl,"
pic_flag
=
" -fPIC -DPIC"
# Compiler flag to prevent dynamic linking.
link_static_flag
=
""
link_static_flag
=
"
-static
"
# Does compiler simultaneously support -c and -o options?
compiler_c_o
=
"yes"
...
...
@@ -8908,13 +8908,13 @@ build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
# ### BEGIN LIBTOOL TAG CONFIG: CXX
# The linker used to build libraries.
LD
=
"/usr/
x86_64-suse-linux/bin/ld -m elf_x86_64
"
LD
=
"/usr/
bin/ld
"
# Commands used to build an old-style archive.
old_archive_cmds
=
"
\$
AR
\$
AR_FLAGS
\$
oldlib
\$
oldobjs~
\$
RANLIB
\$
oldlib"
# A language specific compiler.
CC
=
"
/licsoft/libraries/openmpi/1.2.6/64bit/bin/mpicxx
"
CC
=
"
g++
"
# Is the compiler the GNU compiler?
with_gcc
=
yes
...
...
@@ -8929,7 +8929,7 @@ wl="-Wl,"
pic_flag
=
" -fPIC -DPIC"
# Compiler flag to prevent dynamic linking.
link_static_flag
=
""
link_static_flag
=
"
-static
"
# Does compiler simultaneously support -c and -o options?
compiler_c_o
=
"yes"
...
...
@@ -9039,17 +9039,17 @@ file_list_spec=""
hardcode_action
=
immediate
# The directories searched by this compiler when creating a shared library.
compiler_lib_search_dirs
=
"/u
sr/lib64 /licsoft/libraries/openmpi/1.2.6/64bit
/lib /usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2 /usr/lib
64
/gcc/
x86_64-suse
-linux/4.1.2
/../../../../lib64 /lib/../lib64 /usr/lib/../lib64 /fastfs/wir/local/lib /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/../../.."
compiler_lib_search_dirs
=
"/u
/witkowski/local/lib /u/witkowski/local/intel/mkl/10.0.1.014
/lib
/32
/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/../../.."
# Dependencies to place before and after the objects being linked to
# create a shared library.
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"
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"
predep_objects
=
"/usr/lib/gcc/
i386-redhat
-linux/4.1.2/../../../crti.o /usr/lib/gcc/
i386-redhat
-linux/4.1.2/crtbeginS.o"
postdep_objects
=
"/usr/lib/gcc/
i386-redhat
-linux/4.1.2/crtendS.o /usr/lib/gcc/
i386-redhat
-linux/4.1.2/../../../crtn.o"
predeps
=
""
postdeps
=
"
-lmpi_cxx -lmpi -lopen-rte -lopen-pal -libverbs -lrt -lnuma -ldl -lnsl -lutil -ldl
-lstdc++ -lm -lgcc_s
-lpthread
-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
=
"-L/u
sr
/lib
64
-L/
licsoft/libraries/openmpi/1.2.6/64bit
/lib -L/usr/lib
64
/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/fastfs/wir/local/lib -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/../../.."
compiler_lib_search_path
=
"-L/u
/witkowski/local
/lib -L/
u/witkowski/local/intel/mkl/10.0.1.014
/lib
/32
-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/../../.."
# ### END LIBTOOL TAG CONFIG: CXX
AMDiS/src/ElInfo.cc
View file @
53be46af
...
...
@@ -14,9 +14,9 @@
namespace
AMDiS
{
std
::
vector
<
std
::
map
<
unsigned
long
,
mtl
::
dense2D
<
double
>
>
>
ElInfo
::
subElemMatrices
(
5
);
std
::
vector
<
std
::
map
<
std
::
pair
<
int
,
unsigned
long
>
,
mtl
::
dense2D
<
double
>
>
>
ElInfo
::
subElemMatrices
(
5
);
std
::
vector
<
std
::
map
<
unsigned
long
,
mtl
::
dense2D
<
double
>
>
>
ElInfo
::
subElemGradMatrices
(
5
);
std
::
vector
<
std
::
map
<
std
::
pair
<
int
,
unsigned
long
>
,
mtl
::
dense2D
<
double
>
>
>
ElInfo
::
subElemGradMatrices
(
5
);
ElInfo
::
ElInfo
(
Mesh
*
aMesh
)
:
mesh
(
aMesh
),
...
...
AMDiS/src/ElInfo.h
View file @
53be46af
...
...
@@ -248,12 +248,12 @@ namespace AMDiS {
virtual
mtl
::
dense2D
<
double
>&
getSubElemCoordsMat
(
int
degree
)
const
{
return
subElemMatrices
[
degree
][
refinementPath
];
return
subElemMatrices
[
degree
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
];
}
virtual
mtl
::
dense2D
<
double
>&
getSubElemGradCoordsMat
(
int
degree
)
const
{
return
subElemGradMatrices
[
degree
][
refinementPath
];
return
subElemGradMatrices
[
degree
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
];
}
/** \} */
...
...
@@ -542,21 +542,10 @@ namespace AMDiS {
int
refinementPathLength
;
/** \brief
* This is a transformation matrix used during dual traverse. It is set, if
* the current element is the smaller element of an element pair in the traverse.
* Then this matrix defines a mapping for points defined in barycentric
* coordinates on the larger element, to the barycentric coordinates of the smaller
* element.
*/
mtl
::
dense2D
<
double
>
subElemCoordsMat
;
mtl
::
dense2D
<
double
>
subElemGradCoordsMat
;
public:
static
std
::
vector
<
std
::
map
<
unsigned
long
,
mtl
::
dense2D
<
double
>
>
>
subElemMatrices
;
static
std
::
vector
<
std
::
map
<
std
::
pair
<
int
,
unsigned
long
>
,
mtl
::
dense2D
<
double
>
>
>
subElemMatrices
;
static
std
::
vector
<
std
::
map
<
unsigned
long
,
mtl
::
dense2D
<
double
>
>
>
subElemGradMatrices
;
static
std
::
vector
<
std
::
map
<
std
::
pair
<
int
,
unsigned
long
>
,
mtl
::
dense2D
<
double
>
>
>
subElemGradMatrices
;
/** \brief
* child_vertex[el_type][child][i] = father's local vertex index of new
...
...
AMDiS/src/ElInfo1d.cc
View file @
53be46af
...
...
@@ -48,8 +48,8 @@ namespace AMDiS {
Element
*
nb
;
MacroElement
*
mnb
;
macroElement
=
const_cast
<
MacroElement
*>
(
mel
);
element
=
const_cast
<
Element
*>
(
mel
->
getElement
());
macroElement
=
const_cast
<
MacroElement
*>
(
mel
);
element
=
const_cast
<
Element
*>
(
mel
->
getElement
());
parent
=
NULL
;
level
=
0
;
...
...
@@ -68,12 +68,12 @@ namespace AMDiS {
int
neighbours
=
mesh
->
getGeo
(
NEIGH
);
for
(
int
i
=
0
;
i
<
neighbours
;
i
++
)
{
nb
=
NULL
;
if
((
mnb
=
const_cast
<
MacroElement
*>
(
mel
->
getNeighbour
(
i
))))
{
if
((
mnb
=
const_cast
<
MacroElement
*>
(
mel
->
getNeighbour
(
i
))))
{
if
(
fillFlag
.
isSet
(
Mesh
::
FILL_OPP_COORDS
))
{
oppC
=
mnb
->
coord
[
i
];
}
nb
=
const_cast
<
Element
*>
(
mnb
->
getElement
());
nb
=
const_cast
<
Element
*>
(
mnb
->
getElement
());
while
(
!
(
nb
->
isLeaf
()))
{
// make nb nearest element
if
(
fillFlag
.
isSet
(
Mesh
::
FILL_OPP_COORDS
))
{
...
...
@@ -83,7 +83,7 @@ namespace AMDiS {
oppC
=
(
mel
->
coord
[
i
]
+
oppC
)
*
0.5
;
}
}
nb
=
const_cast
<
Element
*>
(
nb
->
getChild
(
1
-
i
));
nb
=
const_cast
<
Element
*>
(
nb
->
getChild
(
1
-
i
));
}
if
(
fillFlag
.
isSet
(
Mesh
::
FILL_OPP_COORDS
))
{
...
...
@@ -190,7 +190,7 @@ namespace AMDiS {
/* return the absulute value of the determinant from the */
/* transformation to the reference element */
/****************************************************************************/
double
ElInfo1d
::
getElementNormal
(
WorldVector
<
double
>
&
elementNormal
)
const
double
ElInfo1d
::
getElementNormal
(
WorldVector
<
double
>
&
elementNormal
)
const
{
FUNCNAME
(
"ElInfo::getElementNormal()"
);
...
...
@@ -254,7 +254,7 @@ namespace AMDiS {
if
(
fillFlag
.
isSet
(
Mesh
::
FILL_OPP_COORDS
))
oppC
=
elInfoOld
->
coord
[
i
];
}
else
{
nb
=
const_cast
<
Element
*>
(
elInfoOld
->
getNeighbour
(
i
));
nb
=
const_cast
<
Element
*>
(
elInfoOld
->
getNeighbour
(
i
));
if
(
nb
&&
fillFlag
.
isSet
(
Mesh
::
FILL_OPP_COORDS
))
oppC
=
elInfoOld
->
oppCoord
[
i
];
...
...
@@ -268,7 +268,7 @@ namespace AMDiS {
else
oppC
=
(
coord
[
i
]
+
oppC
)
*
0.5
;
}
nb
=
const_cast
<
Element
*>
(
nb
->
getChild
(
1
-
i
));
nb
=
const_cast
<
Element
*>
(
nb
->
getChild
(
1
-
i
));
}
if
(
fillFlag
.
isSet
(
Mesh
::
FILL_OPP_COORDS
))
...
...
@@ -284,9 +284,8 @@ namespace AMDiS {
boundary
[
1
-
ichild
]
=
INTERIOR
;
if
(
elInfoOld
->
getProjection
(
0
)
&&
elInfoOld
->
getProjection
(
0
)
->
getType
()
==
VOLUME_PROJECTION
)
{
projection
[
0
]
=
elInfoOld
->
getProjection
(
0
);
}
elInfoOld
->
getProjection
(
0
)
->
getType
()
==
VOLUME_PROJECTION
)
projection
[
0
]
=
elInfoOld
->
getProjection
(
0
);
}
}
...
...
@@ -297,7 +296,7 @@ namespace AMDiS {
using
namespace
mtl
;
if
(
subElemMatrices
[
degree
].
count
(
refinementPath
)
==
0
)
{
if
(
subElemMatrices
[
degree
].
count
(
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
)
==
0
)
{
switch
(
degree
)
{
case
1
:
{
...
...
@@ -306,15 +305,15 @@ namespace AMDiS {
for
(
int
i
=
0
;
i
<
refinementPathLength
;
i
++
)
{
if
(
refinementPath
&
(
1
<<
i
))
{
tmpMat
=
mat_d1_right
*
mat
;
tmpMat
=
mat
*
mat_d1_right
;
mat
=
tmpMat
;
}
else
{
tmpMat
=
mat_d1_left
*
mat
;
tmpMat
=
mat
*
mat_d1_left
;
mat
=
tmpMat
;
}
}
subElemMatrices
[
1
][
refinementPath
]
=
mat
;
subElemMatrices
[
1
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
]
=
mat
;
}
break
;
...
...
@@ -325,15 +324,15 @@ namespace AMDiS {
for
(
int
i
=
0
;
i
<
refinementPathLength
;
i
++
)
{
if
(
refinementPath
&
(
1
<<
i
))
{
tmpMat
=
mat_d2_right
*
mat
;
tmpMat
=
mat
*
mat_d2_right
;
mat
=
tmpMat
;
}
else
{
tmpMat
=
mat_d2_left
*
mat
;
tmpMat
=
mat
*
mat_d2_left
;
mat
=
tmpMat
;
}
}
subElemMatrices
[
2
][
refinementPath
]
=
mat
;
subElemMatrices
[
2
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
]
=
mat
;
}
break
;
default:
...
...
@@ -341,7 +340,7 @@ namespace AMDiS {
}
}
return
subElemMatrices
[
degree
][
refinementPath
];
return
subElemMatrices
[
degree
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
];
}
...
...
@@ -353,16 +352,16 @@ namespace AMDiS {
using
namespace
mtl
;
if
(
subElemGradMatrices
[
degree
].
count
(
refinementPath
)
==
0
)
{
if
(
subElemGradMatrices
[
degree
].
count
(
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
)
==
0
)
{
dense2D
<
double
>
mat
(
mat_d1
);
for
(
int
i
=
0
;
i
<
refinementPathLength
;
i
++
)
mat
*=
0.5
;
subElemGradMatrices
[
1
][
refinementPath
]
=
mat
;
subElemGradMatrices
[
1
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
]
=
mat
;
}
return
subElemGradMatrices
[
degree
][
refinementPath
];
return
subElemGradMatrices
[
degree
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
];
}
...
...
AMDiS/src/ElInfo2d.cc
View file @
53be46af
...
...
@@ -765,7 +765,7 @@ namespace AMDiS {
using
namespace
mtl
;
if
(
subElemMatrices
[
degree
].
count
(
refinementPath
)
==
0
)
{
if
(
subElemMatrices
[
degree
].
count
(
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
)
==
0
)
{
switch
(
degree
)
{
case
1
:
{
...
...
@@ -774,15 +774,15 @@ namespace AMDiS {
for
(
int
i
=
0
;
i
<
refinementPathLength
;
i
++
)
{
if
(
refinementPath
&
(
1
<<
i
))
{
tmpMat
=
mat_d1_right
*
mat
;
tmpMat
=
mat
*
mat_d1_right
;
mat
=
tmpMat
;
}
else
{
tmpMat
=
mat_d1_left
*
mat
;
tmpMat
=
mat
*
mat_d1_left
;
mat
=
tmpMat
;
}
}
subElemMatrices
[
1
][
refinementPath
]
=
mat
;
subElemMatrices
[
1
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
]
=
mat
;
}
break
;
case
2
:
...
...
@@ -792,15 +792,15 @@ namespace AMDiS {
for
(
int
i
=
0
;
i
<
refinementPathLength
;
i
++
)
{
if
(
refinementPath
&
(
1
<<
i
))
{
tmpMat
=
mat_d2_right
*
mat
;
tmpMat
=
mat
*
mat_d2_right
;
mat
=
tmpMat
;
}
else
{
tmpMat
=
mat_d2_left
*
mat
;
tmpMat
=
mat
*
mat_d2_left
;
mat
=
tmpMat
;
}
}
subElemMatrices
[
2
][
refinementPath
]
=
mat
;
subElemMatrices
[
2
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
]
=
mat
;
}
break
;
case
3
:
...
...
@@ -810,15 +810,15 @@ namespace AMDiS {
for
(
int
i
=
0
;
i
<
refinementPathLength
;
i
++
)
{
if
(
refinementPath
&
(
1
<<
i
))
{
tmpMat
=
mat_d3_right
*
mat
;
tmpMat
=
mat
*
mat_d3_right
;
mat
=
tmpMat
;
}
else
{
tmpMat
=
mat_d3_left
*
mat
;
tmpMat
=
mat
*
mat_d3_left
;
mat
=
tmpMat
;
}
}
subElemMatrices
[
3
][
refinementPath
]
=
mat
;
subElemMatrices
[
3
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
]
=
mat
;
}
break
;
case
4
:
...
...
@@ -828,15 +828,15 @@ namespace AMDiS {
for
(
int
i
=
0
;
i
<
refinementPathLength
;
i
++
)
{
if
(
refinementPath
&
(
1
<<
i
))
{
tmpMat
=
mat_d4_right
*
mat
;
tmpMat
=
mat
*
mat_d4_right
;
mat
=
tmpMat
;
}
else
{
tmpMat
=
mat_d4_left
*
mat
;
tmpMat
=
mat
*
mat_d4_left
;
mat
=
tmpMat
;
}
}
subElemMatrices
[
4
][
refinementPath
]
=
mat
;
subElemMatrices
[
4
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
]
=
mat
;
}
break
;
...
...
@@ -845,7 +845,7 @@ namespace AMDiS {
}
}
return
subElemMatrices
[
degree
][
refinementPath
];
return
subElemMatrices
[
degree
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
];
}
...
...
@@ -857,7 +857,7 @@ namespace AMDiS {
using
namespace
mtl
;
if
(
subElemGradMatrices
[
degree
].
count
(
refinementPath
)
==
0
)
{
if
(
subElemGradMatrices
[
degree
].
count
(
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
)
==
0
)
{
dense2D
<
double
>
mat
(
3
,
3
),
tmpMat
(
3
,
3
);
mat
=
1
;
...
...
@@ -881,10 +881,9 @@ namespace AMDiS {
mat
=
tmpMat
;
}
subElemGradMatrices
[
1
][
refinementPath
]
=
mat
;
subElemGradMatrices
[
1
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
]
=
mat
;
}
return
subElemGradMatrices
[
degree
][
refinementPath
];
return
subElemGradMatrices
[
degree
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)];
}
}
AMDiS/src/ElInfo3d.cc
View file @
53be46af
...
...
@@ -738,7 +738,7 @@ namespace AMDiS {
using
namespace
mtl
;
if
(
subElemMatrices
[
degree
].
count
(
refinementPath
)
==
0
)
{
if
(
subElemMatrices
[
degree
].
count
(
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
)
==
0
)
{
switch
(
degree
)
{
case
1
:
{
...
...
@@ -748,18 +748,18 @@ namespace AMDiS {
for
(
int
i
=
0
;
i
<
refinementPathLength
;
i
++
)
{
if
(
refinementPath
&
(
1
<<
i
))
{
if
((
level
+
i
)
%
3
==
0
)
tmpMat
=
mat_d1_l0_right
*
mat
;
tmpMat
=
mat
*
mat_d1_l0_right
;
else
tmpMat
=
mat_d1_l12_right
*
mat
;
tmpMat
=
mat
*
mat_d1_l12_right
;
mat
=
tmpMat
;
}
else
{
tmpMat
=
mat_d1_left
*
mat
;
tmpMat
=
mat
*
mat_d1_left
;
mat
=
tmpMat
;
}
}
subElemMatrices
[
degree
][
refinementPath
]
=
mat
;
subElemMatrices
[
degree
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
]
=
mat
;
}
break
;
case
4
:
...
...
@@ -770,18 +770,18 @@ namespace AMDiS {
for
(
int
i
=
0
;
i
<
refinementPathLength
;
i
++
)
{
if
(
refinementPath
&
(
1
<<
i
))
{
if
((
level
+
i
)
%
3
==
0
)
tmpMat
=
mat_d4_l0_right
*
mat
;
tmpMat
=
mat
*
mat_d4_l0_right
;
else
tmpMat
=
mat_d4_l12_right
*
mat
;
tmpMat
=
mat
*
mat_d4_l12_right
;
mat
=
tmpMat
;
}
else
{
tmpMat
=
mat_d4_left
*
mat
;
tmpMat
=
mat
*
mat_d4_left
;
mat
=
tmpMat
;
}
}
subElemMatrices
[
degree
][
refinementPath
]
=
mat
;
subElemMatrices
[
degree
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
]
=
mat
;
}
break
;
default:
...
...
@@ -789,7 +789,7 @@ namespace AMDiS {
}
}
return
subElemMatrices
[
degree
][
refinementPath
];
return
subElemMatrices
[
degree
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
];
}
...
...
@@ -799,7 +799,7 @@ namespace AMDiS {
ERROR_EXIT
(
"Not yet implemented!
\n
"
);
return
subElemGradMatrices
[
degree
][
refinementPath
];
return
subElemGradMatrices
[
degree
][
std
::
make_pair
(
refinementPathLength
,
refinementPath
)
];
}
}
AMDiS/src/ZeroOrderAssembler.cc
View file @
53be46af
...
...
@@ -65,12 +65,12 @@ namespace AMDiS {
// create new assembler
if
(
!
optimized
)
{
newAssembler
=
new
StandardZOA
(
op
,
assembler
,
quad
);
newAssembler
=
new
StandardZOA
(
op
,
assembler
,
quad
);
}
else
{
if
(
pwConst
)
newAssembler
=
new
PrecalcZOA
(
op
,
assembler
,
quad
);
newAssembler
=
new
PrecalcZOA
(
op
,
assembler
,
quad
);
else
newAssembler
=
new
FastQuadZOA
(
op
,
assembler
,
quad
);
newAssembler
=
new
FastQuadZOA
(
op
,
assembler
,
quad
);
}
subAssemblers
->
push_back
(
newAssembler
);
...
...
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