| 168bb5e4 | 20-Dec-2018 |
Patrick Farrell <patrick@pefarrell.org> |
Fix uninitialised memory error in valgrid.
Create the IS _after_ we set the contents of the indices. (Since the IS owns the pointer, this shouldn't have any functional effect, but just keeps valgrin
Fix uninitialised memory error in valgrid.
Create the IS _after_ we set the contents of the indices. (Since the IS owns the pointer, this shouldn't have any functional effect, but just keeps valgrind happy.)
show more ...
|
| e5b9877f | 17-Dec-2018 |
Patrick Farrell <patrick@pefarrell.org> |
Rename PC_PATCH_OWNED to PC_PATCH_PARDECOMP.
Still not entirely settled on the name. However, "owned" is misleading as it will soon incorporate overlap, so it's not just "owned". Since it's construc
Rename PC_PATCH_OWNED to PC_PATCH_PARDECOMP.
Still not entirely settled on the name. However, "owned" is misleading as it will soon incorporate overlap, so it's not just "owned". Since it's constructing the domain decomposition from the solver from the parallel decomposition, I want to get "parallel" in there somewhere. -pc_patch_construct_type paralleldecomposition seems a mouthful, so I thought let's go for -pc_patch_construct_type pardecomp for now.
show more ...
|
| 0a390943 | 16-Dec-2018 |
Patrick Farrell <patrick@pefarrell.org> |
Sketch an "owned" patch constructor.
This has several uses. First of all, in serial it allows us to verify the implementation of SNESPATCH (by comparing it to Newton/LU or whatever). Second, this be
Sketch an "owned" patch constructor.
This has several uses. First of all, in serial it allows us to verify the implementation of SNESPATCH (by comparing it to Newton/LU or whatever). Second, this begins to address the functionality offered by PCASM/SNESNASM, but in a more general way.
At the moment, in the patch code we compute the sparsity pattern of the matrices using a PetscBT. This doesn't work for moderately sized patches, as the comment in PCPatchCreateMatrix_Private indicates. This should be fixed.
The convergence of this might be greatly improved by keeping some degrees of freedom in the overlap; we should add options to allow the user to control this, also. (This might entail changing the name.)
show more ...
|
| 0904074f | 15-Dec-2018 |
Patrick Farrell <patrick@pefarrell.org> |
When solving a nonlinear problem, we need _all_ the information about the state on the patch, including the values of dofs that feature in global (as well as artificial) boundary conditions. So we mu
When solving a nonlinear problem, we need _all_ the information about the state on the patch, including the values of dofs that feature in global (as well as artificial) boundary conditions. So we must build this function space on each patch, too, and the scatters from the smallest patch to this one.
show more ...
|
| 39fd2e8a | 14-Dec-2018 |
Patrick Farrell <patrick@pefarrell.org> |
We need to pass the state _with_ boundary data to the patch residual evaluator, but compute a residual _without_ boundary data. We therefore need all of the *withArtificial datastructures in PCPATCH
We need to pass the state _with_ boundary data to the patch residual evaluator, but compute a residual _without_ boundary data. We therefore need all of the *withArtificial datastructures in PCPATCH if we're running in nonlinear mode. This requires passing two dofmaps to the residual code, also.
show more ...
|
| 6c9c532d | 13-Dec-2018 |
Patrick Farrell <patrick@pefarrell.org> |
Start refactoring for multiplicative updates. Multiplicative + SNESPATCH doesn't actually work yet because we need to pass the state _with BC values_ to the residual evaluation, but at the moment we'
Start refactoring for multiplicative updates. Multiplicative + SNESPATCH doesn't actually work yet because we need to pass the state _with BC values_ to the residual evaluation, but at the moment we're only passing the state _for the dofs we're to solve for_.
show more ...
|
| 1202d238 | 12-Dec-2018 |
Patrick Farrell <patrick@pefarrell.org> |
A PC only deals with two vectors, an RHS and an update. A SNES deals with 4: residual calculation workspace, state vector, state update vector, optional RHS vector.
Rename things in PCPATCH to make
A PC only deals with two vectors, an RHS and an update. A SNES deals with 4: residual calculation workspace, state vector, state update vector, optional RHS vector.
Rename things in PCPATCH to make clear what is RHS and what is update. Scatter the global state onto the patch solve before calling SNESSolve. Give each SNES its own separate residual calculation workspace.
show more ...
|