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
amdis
amdis-core
Commits
95a126a5
Commit
95a126a5
authored
Mar 14, 2019
by
Praetorius, Simon
Browse files
Merge branch 'releases/0.2' into 'master'
Releases/0.2 See merge request
amdis/amdis-core!1
parents
03c8bf81
07930b89
Changes
22
Hide whitespace changes
Inline
Side-by-side
src/amdis/linearalgebra/eigen/SolverConfig.hpp
View file @
95a126a5
...
...
@@ -72,7 +72,7 @@ namespace AMDiS
static
void
init
(
std
::
string
const
&
prefix
,
Eigen
::
UmfPackLU
<
M
>&
solver
)
{
DUNE_UNUSED
auto
&
control
=
solver
.
umfpackControl
();
//
here,
umfpack parameters
could be initialized
//
TODO: initialized
umfpack parameters
}
};
#endif
...
...
src/amdis/linearalgebra/eigen/SolverCreator.hpp
View file @
95a126a5
...
...
@@ -30,7 +30,7 @@ namespace AMDiS
using
SolverBase
=
LinearSolverInterface
<
Matrix
,
VectorX
,
VectorB
>
;
using
Scalar
=
typename
Matrix
::
Scalar
;
std
::
unique_ptr
<
SolverBase
>
createWithString
(
std
::
string
const
&
prefix
)
override
std
::
unique_ptr
<
SolverBase
>
createWithString
(
std
::
string
prefix
)
override
{
// get creator string for preconditioner
std
::
string
precon
=
"no"
;
...
...
@@ -40,12 +40,12 @@ namespace AMDiS
precon
==
"jacobi"
)
{
auto
creator
=
SolverCreator
<
Eigen
::
DiagonalPreconditioner
<
Scalar
>>
{};
return
creator
.
create
(
prefix
);
return
creator
.
create
WithString
(
prefix
);
}
else
if
(
precon
==
"ilu"
)
{
auto
creator
=
SolverCreator
<
Eigen
::
IncompleteLUT
<
Scalar
>>
{};
return
creator
.
create
(
prefix
);
return
creator
.
create
WithString
(
prefix
);
}
else
if
(
precon
==
"ic"
)
{
...
...
@@ -53,7 +53,7 @@ namespace AMDiS
}
else
{
auto
creator
=
SolverCreator
<
Eigen
::
IdentityPreconditioner
>
{};
return
creator
.
create
(
prefix
);
return
creator
.
create
WithString
(
prefix
);
}
}
...
...
@@ -62,18 +62,18 @@ namespace AMDiS
using
IncompleteCholesky
=
SolverCreator
<
Eigen
::
IncompleteCholesky
<
Scalar
,
Eigen
::
Lower
|
Eigen
::
Upper
,
Ordering
>>
;
std
::
unique_ptr
<
SolverBase
>
createIncompleteCholesky
(
std
::
string
const
&
prefix
)
const
std
::
unique_ptr
<
SolverBase
>
createIncompleteCholesky
(
std
::
string
prefix
)
const
{
std
::
string
ordering
=
"amd"
;
Parameters
::
get
(
prefix
+
"->precon->ordering"
,
ordering
);
if
(
ordering
==
"amd"
)
{
using
AMD
=
Eigen
::
AMDOrdering
<
typename
Matrix
::
StorageIndex
>
;
return
IncompleteCholesky
<
AMD
>
{}.
create
(
prefix
);
return
IncompleteCholesky
<
AMD
>
{}.
create
WithString
(
prefix
);
}
else
{
using
NATURAL
=
Eigen
::
NaturalOrdering
<
typename
Matrix
::
StorageIndex
>
;
return
IncompleteCholesky
<
NATURAL
>
{}.
create
(
prefix
);
return
IncompleteCholesky
<
NATURAL
>
{}.
create
WithString
(
prefix
);
}
}
};
...
...
Prev
1
2
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a 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