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
469bc1cf
Commit
469bc1cf
authored
Aug 14, 2012
by
Thomas Witkowski
Browse files
To make debugging possible.
parent
c3c26dfc
Changes
8
Hide whitespace changes
Inline
Side-by-side
AMDiS/src/Initfile.cc
View file @
469bc1cf
...
...
@@ -16,8 +16,8 @@ namespace AMDiS {
{
size_t
pos
=
line
.
find
(
':'
);
if
(
pos
==
string
::
npos
)
{
throw
runtime_error
(
"cannot find the delimiter ':' in line "
"'"
+
line
+
"'"
);
//
throw runtime_error("cannot find the delimiter ':' in line "
//
"'" + line + "'");
}
name
=
line
.
substr
(
0
,
pos
);
value
=
line
.
substr
(
pos
+
1
,
line
.
length
()
-
(
pos
+
1
));
...
...
@@ -53,8 +53,8 @@ namespace AMDiS {
if
(
fn_include_list
.
find
(
fn
)
==
fn_include_list
.
end
()
||
force
)
{
std
::
ifstream
inputFile
;
inputFile
.
open
(
fn
.
c_str
(),
std
::
ios
::
in
);
if
(
!
inputFile
.
is_open
())
throw
runtime_error
(
"init-file '"
+
fn
+
"' cannot be opened for reading"
);
//
if (!inputFile.is_open())
//
throw runtime_error("init-file '" + fn + "' cannot be opened for reading");
fn_include_list
.
insert
(
fn
);
read
(
inputFile
);
...
...
@@ -115,11 +115,11 @@ namespace AMDiS {
if
(
sw
[
epos
]
!=
c
)
{
errorMsg
<<
"filename in #include not terminated by "
<<
c
;
throw
std
::
runtime_error
(
errorMsg
.
str
());
//
throw std::runtime_error(errorMsg.str());
}
break
;
default:
throw
std
::
runtime_error
(
"no filename given for #include"
);
//
throw std::runtime_error("no filename given for #include");
}
read
(
fn
,
forceRead
);
}
...
...
@@ -155,8 +155,8 @@ namespace AMDiS {
// otherwise throw tagNotFound exception
std
::
string
varParam
;
int
error_code
=
checkedGet
(
varName
,
varParam
);
if
(
error_code
!=
0
)
throw
TagNotFoundBreak
(
"required tag '"
+
varName
+
"' for variable substitution not found"
);
//
if (error_code != 0)
//
throw TagNotFoundBreak("required tag '" + varName + "' for variable substitution not found");
std
::
string
replaceName
=
inputSwap
.
substr
(
posVar
,
posVarEnd
-
posVar
+
(
posVarBegin
-
posVar
));
inputSwap
.
replace
(
inputSwap
.
find
(
replaceName
),
replaceName
.
length
(),
varParam
);
...
...
@@ -266,8 +266,8 @@ namespace AMDiS {
{
std
::
ofstream
outFile
;
outFile
.
open
(
fn
.
c_str
(),
std
::
ios
::
out
);
if
(
!
outFile
.
is_open
())
throw
runtime_error
(
"init-file cannot be opened for writing"
);
//
if (!outFile.is_open())
//
throw runtime_error("init-file cannot be opened for writing");
write
(
outFile
);
}
...
...
AMDiS/src/Initfile.h
View file @
469bc1cf
...
...
@@ -113,7 +113,7 @@ namespace AMDiS {
if
(
pos
!=
std
::
string
::
npos
)
return
i
;
}
throw
NoDelim
(
"cannot detect the delimiter in "
+
value
);
//
throw NoDelim("cannot detect the delimiter in " + value);
return
0
;
}
...
...
@@ -136,9 +136,9 @@ namespace AMDiS {
size_t
pos
=
begBrackets
.
find
(
val
[
0
]);
if
(
pos
==
std
::
string
::
npos
)
hasBrackets
=
false
;
if
(
hasBrackets
&&
val
[
val
.
length
()
-
1
]
!=
endBrackets
[
pos
])
throw
WrongVectorFormat
(
"begin and end bracket are different in"
" value '"
+
val
+
"'"
);
/*
if (hasBrackets && val[val.length() - 1] != endBrackets[pos])
*/
/*
throw WrongVectorFormat("begin and end bracket are different in"
*/
/*
" value '" + val + "'");
*/
size_t
oldPos
=
(
hasBrackets
?
1
:
0
);
size_t
curDelim
=
0
;
typedef
typename
Container
::
value_type
ValueType
;
...
...
@@ -189,16 +189,16 @@ namespace AMDiS {
parser
.
DefineConst
(
_T
(
"M_PI"
),
m_pi
);
parser
.
DefineConst
(
_T
(
"M_E"
),
m_e
);
try
{
//
try {
parser
.
SetExpr
(
valStr
);
value
=
numeric_cast
<
T
>
(
parser
.
Eval
());
}
catch
(
boost
::
bad_lexical_cast
e
)
{
throw
WrongValueFormat
<
T
>
(
valStr
);
}
catch
(
boost
::
bad_numeric_cast
e
)
{
throw
WrongValueFormat
<
T
>
(
valStr
);
}
catch
(
mu
::
Parser
::
exception_type
&
e
)
{
throw
BadArithmeticExpression
<
T
>
(
e
.
GetMsg
(),
valStr
);
}
/*
} catch (boost::bad_lexical_cast e) {
*/
/*
throw WrongValueFormat< T >(valStr);
*/
/*
} catch (boost::bad_numeric_cast e) {
*/
/*
throw WrongValueFormat< T >(valStr);
*/
/*
} catch (mu::Parser::exception_type &e) {
*/
/*
throw BadArithmeticExpression<T>(e.GetMsg(), valStr);
*/
/*
}
*/
}
...
...
@@ -207,11 +207,11 @@ namespace AMDiS {
typename
boost
::
enable_if
<
boost
::
is_enum
<
T
>
>::
type
*
p
=
NULL
)
{
int
swap
=
0
;
try
{
//
try {
swap
=
boost
::
lexical_cast
<
int
>
(
trim
(
valStr
));
}
catch
(
boost
::
bad_lexical_cast
e
)
{
throw
WrongValueFormat
<
T
>
(
valStr
);
}
/*
} catch (boost::bad_lexical_cast e) {
*/
/*
throw WrongValueFormat< T >(valStr);
*/
/*
}
*/
value
=
static_cast
<
T
>
(
swap
);
}
...
...
@@ -241,8 +241,8 @@ namespace AMDiS {
{
std
::
vector
<
T
>
temp_vec
;
getContainer
(
valStr
,
temp_vec
);
if
(
static_cast
<
int
>
(
temp_vec
.
size
())
!=
c
.
getSize
())
throw
WrongVectorSize
(
"wrong number of entries for WorldVector"
);
/*
if (static_cast<int>(temp_vec.size()) != c.getSize())
*/
/*
throw WrongVectorSize("wrong number of entries for WorldVector");
*/
for
(
size_t
i
=
0
;
i
<
temp_vec
.
size
();
i
++
)
c
[
i
]
=
temp_vec
[
i
];
...
...
@@ -410,14 +410,17 @@ namespace AMDiS {
if
(
error_code
==
0
)
{
valStr
=
trim
(
valStr
);
details
::
convert
(
valStr
,
value
);
}
else
if
(
error_code
==
TAG_NOT_FOUND_BREAK
)
}
/*
else if(error_code == TAG_NOT_FOUND_BREAK)
throw TagNotFoundBreak("required tag '" + tag + "' not found");
else if (error_code == TAG_NOT_FOUND) {
if (debugInfo == 2)
std::cout << "there is no tag '" + tag + "'" << std::endl;
} else
throw std::runtime_error("unknown error_code (" + boost::lexical_cast<std::string>(error_code) + ") returned for tag '" + tag + "'");
*/
if
(
debugInfo
==
2
)
{
std
::
cout
<<
"Parameter '"
<<
tag
<<
"'"
<<
" initialized with: "
<<
value
<<
std
::
endl
;
...
...
@@ -436,14 +439,18 @@ namespace AMDiS {
if
(
error_code
==
0
)
{
valStr
=
trim
(
valStr
);
result
=
InitEntry
(
valStr
);
}
else
if
(
error_code
==
TAG_NOT_FOUND_BREAK
)
}
#if 0
else if(error_code == TAG_NOT_FOUND_BREAK)
throw TagNotFoundBreak("get(): required tag '" + tag + "' not found");
else if (error_code == TAG_NOT_FOUND)
throw TagNotFound("get(): there is no tag '" + tag + "'");
// exception must be thrown, because an empty object would be return otherwise
else
throw std::runtime_error("get(): unknown error_code returned for tag '" + tag + "'");
#endif
return
result
;
}
...
...
AMDiS/src/io/ArhWriter.cc
View file @
469bc1cf
...
...
@@ -58,8 +58,6 @@ namespace AMDiS {
}
#endif
exit
(
0
);
ofstream
file
;
file
.
open
(
filename
.
c_str
(),
ios
::
out
|
ios
::
binary
|
ios
::
trunc
);
...
...
AMDiS/src/parallel/MatrixNnzStructure.cc
View file @
469bc1cf
...
...
@@ -36,6 +36,7 @@ namespace AMDiS {
MPI
::
Intracomm
mpiComm
,
ParallelDofMapping
&
rowDofMap
,
ParallelDofMapping
&
colDofMap
,
PeriodicMap
*
perMap
,
bool
localMatrix
)
{
FUNCNAME
(
"MatrixNnzStructure::create()"
);
...
...
@@ -146,6 +147,9 @@ namespace AMDiS {
petscRowIdx
=
rowDofMap
.
getMatIndex
(
rowComp
,
*
cursor
);
}
bool
periodicRow
=
(
perMap
&&
perMap
->
isPeriodic
(
rowFeSpace
,
rowIt
->
second
.
global
));
if
(
localMatrix
||
rowDofMap
[
rowFeSpace
].
isRankDof
(
*
cursor
))
{
// === The current row DOF is a rank DOF, so create the ===
...
...
@@ -196,6 +200,11 @@ namespace AMDiS {
else
onnz
[
localPetscRowIdx
]
++
;
}
if
(
periodicRow
)
{
dnnz
[
localPetscRowIdx
]
*=
4
;
onnz
[
localPetscRowIdx
]
*=
4
;
}
}
}
else
{
// === The current row DOF is not a rank DOF, i.e., its values ===
...
...
AMDiS/src/parallel/MatrixNnzStructure.h
View file @
469bc1cf
...
...
@@ -25,6 +25,7 @@
#include
"AMDiS_fwd.h"
#include
"parallel/ParallelDofMapping.h"
#include
"parallel/PeriodicMap.h"
namespace
AMDiS
{
...
...
@@ -43,14 +44,16 @@ namespace AMDiS {
MPI
::
Intracomm
mpiComm
,
ParallelDofMapping
&
rowDofMap
,
ParallelDofMapping
&
colDofMap
,
PeriodicMap
*
perMap
=
NULL
,
bool
localMatrix
=
false
);
void
create
(
Matrix
<
DOFMatrix
*>
*
mat
,
MPI
::
Intracomm
mpiComm
,
ParallelDofMapping
&
dofMap
,
PeriodicMap
*
perMap
=
NULL
,
bool
localMatrix
=
false
)
{
create
(
mat
,
mpiComm
,
dofMap
,
dofMap
,
localMatrix
);
create
(
mat
,
mpiComm
,
dofMap
,
dofMap
,
perMap
,
localMatrix
);
}
protected:
...
...
AMDiS/src/parallel/ParallelDebug.cc
View file @
469bc1cf
...
...
@@ -145,8 +145,9 @@ namespace AMDiS {
{
FUNCNAME
(
"ParallelDebug::testPeriodicBoundary()"
);
for
(
unsigned
int
i
=
0
;
i
<
pdb
.
feSpaces
.
size
();
i
++
)
testPeriodicBoundary
(
pdb
,
pdb
.
feSpaces
[
i
]);
MSG
(
" NO TEST HERE!
\n
"
);
// for (unsigned int i = 0; i < pdb.feSpaces.size(); i++)
// testPeriodicBoundary(pdb, pdb.feSpaces[i]);
}
...
...
AMDiS/src/parallel/PetscProblemStat.cc
View file @
469bc1cf
...
...
@@ -54,7 +54,6 @@ namespace AMDiS {
tmp
=
""
;
Parameters
::
get
(
nameStr
+
"->solver->petsc prefix"
,
tmp
);
MSG
(
"SET PREFIX
\"
%s
\"\n
"
,
tmp
.
c_str
());
petscSolver
->
setKspPrefix
(
tmp
);
}
...
...
AMDiS/src/parallel/PetscSolverGlobalMatrix.cc
View file @
469bc1cf
...
...
@@ -36,7 +36,8 @@ namespace AMDiS {
// === If required, recompute non zero structure of the matrix. ===
if
(
checkMeshChange
(
mat
))
nnzInterior
.
create
(
mat
,
mpiCommGlobal
,
*
interiorMap
);
nnzInterior
.
create
(
mat
,
mpiCommGlobal
,
*
interiorMap
,
&
(
meshDistributor
->
getPeriodicMap
()));
// === Create PETSc vector (solution and a temporary vector). ===
...
...
@@ -147,7 +148,7 @@ namespace AMDiS {
bool
localMatrix
=
(
subdomainLevel
==
0
);
if
(
checkMeshChange
(
mat
,
localMatrix
))
{
nnzInterior
.
create
(
mat
,
mpiCommGlobal
,
*
interiorMap
,
localMatrix
);
nnzInterior
.
create
(
mat
,
mpiCommGlobal
,
*
interiorMap
,
NULL
,
localMatrix
);
if
(
coarseSpaceMap
)
{
nnzCoarse
.
create
(
mat
,
mpiCommGlobal
,
*
coarseSpaceMap
);
...
...
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