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
iwr
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