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
2eeb5654
Commit
2eeb5654
authored
Nov 21, 2011
by
Thomas Witkowski
Browse files
Work on FETI-DP method.
parent
3509ab94
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
AMDiS/src/parallel/PetscProblemStat.cc
View file @
2eeb5654
...
...
@@ -89,7 +89,6 @@ namespace AMDiS {
petscSolver
->
fillPetscRhs
(
rhs
);
#if 0
processMemUsage(vm, rss);
MSG("STAGE 2\n");
...
...
AMDiS/src/parallel/PetscSolverFeti.cc
View file @
2eeb5654
This diff is collapsed.
Click to expand it.
AMDiS/src/parallel/PetscSolverFeti.h
View file @
2eeb5654
...
...
@@ -33,6 +33,8 @@ namespace AMDiS {
#ifdef HAVE_PETSC_DEV
class
PetscSolverFeti
;
/** \brief
* This structure is used when defining the MatShell operation for solving
* primal schur complement. \ref petscMultMatSchurPrimal
...
...
@@ -50,8 +52,7 @@ namespace AMDiS {
/// Temporal vecor in the primal variables.
Vec
tmp_vec_primal
;
/// Pointer to the solver for \ref PetscSolverFeti::mat_bb.
KSP
*
ksp_b
;
PetscSolverFeti
*
fetiSolver
;
};
...
...
@@ -76,8 +77,7 @@ namespace AMDiS {
/// Temporal vector on the primal variables.
Vec
tmp_vec_primal
;
/// Pointer to the solver for \ref PetscSolverFeti::mat_bb.
KSP
*
ksp_b
;
PetscSolverFeti
*
fetiSolver
;
/// Pointer to the solver of the schur complement on the primal variables.
KSP
*
ksp_schur_primal
;
...
...
@@ -125,6 +125,34 @@ namespace AMDiS {
}
FetiPreconditioner
;
struct
FetiStatisticsData
{
/// Number of application of the FETI-DP operator.
int
nFetiApply
;
/// Time for solving the reduced FETI system.
double
timeFetiApply
;
/// Number of application of the Schur primal operator.
int
nSchurPrimalApply
;
/// Time for appling the Schur primal operator.
double
timeSchurPrimalApply
;
/// Number of solution of the Schur primal system.
int
nSchurPrimalSolve
;
/// Time for solving the Schur primal system.
double
timeSchurPrimalSolve
;
/// Number of solution of the local subdomain problems.
int
nLocalSolve
;
/// Time for solving the local subdomain problems.
double
timeLocalSolve
;
};
/** \brief
* FETI-DP implementation based on PETSc.
*/
...
...
@@ -156,6 +184,8 @@ namespace AMDiS {
MeshDistributor
::
BOUNDARY_FILL_INFO_RECV_DOFS
;
}
void
solveLocalProblem
(
Vec
&
rhs
,
Vec
&
sol
);
protected:
/// After mesh changes, or if the solver is called the first time, this
/// function creates all matrix and vector objects with the approriated
...
...
@@ -212,15 +242,6 @@ namespace AMDiS {
Vec
&
vec_sol_primal
,
SystemVector
&
vec
);
/** \brief
* Solves the FETI-DP system globally, thus without reducing it to the
* Lagrange multipliers. This should be used for debugging only to test
* if the FETI-DP system is setup correctly.
*
* \param[out] vec Solution DOF vectors.
*/
void
solveFetiMatrix
(
SystemVector
&
vec
);
/** \brief
* Solves the FETI-DP system with reducing it first to the Lagrange
* multipliers. This is what one expects when using the FETI-DP methid :)
...
...
@@ -229,6 +250,10 @@ namespace AMDiS {
*/
void
solveReducedFetiMatrix
(
SystemVector
&
vec
);
void
resetStatistics
();
void
printStatistics
();
protected:
/// Number of components in the PDE to be solved.
int
nComponents
;
...
...
@@ -262,7 +287,7 @@ namespace AMDiS {
/// Index for each non primal variables to the global index of
/// B variables.
DofMapping
globalIndexB
;
DofMapping
globalIndexB
,
localIndexB
;
/// Number of non primal, thus B, variables on rank and globally.
int
nRankB
,
nOverallB
,
rStartB
;
...
...
@@ -287,6 +312,11 @@ namespace AMDiS {
/// variables, \ref mat_b_b
KSP
ksp_b
;
/// 0: Solve the Schur complement on primal variables with iterative solver.
/// 1: Create the Schur complement matrix explicitly and solve it with a
/// direct solver.
int
schurPrimalSolver
;
/// PETSc solver object to solve the Schur complement on the
/// primal variables.
KSP
ksp_schur_primal
;
...
...
@@ -329,6 +359,9 @@ namespace AMDiS {
// Number of local nodes that are duals.
int
nLocalDuals
;
public:
static
FetiStatisticsData
fetiStatistics
;
};
#endif
...
...
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