idaholab / moose

Multiphysics Object Oriented Simulation Environment
https://www.mooseframework.org
GNU Lesser General Public License v2.1
1.76k stars 1.05k forks source link

Splits system development #1851

Closed dkarpeyev closed 10 years ago

dkarpeyev commented 10 years ago

None

dkarpeyev commented 10 years ago

In 211c069e9c86d7759463794c422b506d74e4201e:

Basic FieldSplitPreconditioner capability (FSP). Ported and improved petscdmmoose from petscdmlibmesh. Added basic FSP tests. (addresses #1851)
dkarpeyev commented 10 years ago

In ddaf815257096fedb96c97df7dbca8e524d5556a:

FSP: minor compatibility fixes, renaming files to conform to Moose conventions and purging spurious includes (addresses #1851).
dkarpeyev commented 10 years ago

In 834199ec417f65e2d4bbe01d961a111b07a39c31:

FSP: Define PETSC macros before using them (addresses #1851).
dkarpeyev commented 10 years ago

In 5436b02c7a24cb22bec9d50c405b4ff10221639b:

Retooled PetscDMMoose to work with sidesets and to have a better command-line interface (addresses #1851).
dkarpeyev commented 10 years ago

In 6a3286f264fa60d78dccff4f044d96257cb8f5e8:

Bug fixes to enable correct recursive splits in DMMoose (addresses #1851).
dkarpeyev commented 10 years ago

In 4c2d6eecc4275d2214de25d8be7a127bd3b34c83:

Reworked DMMoose to allow each DM, including split DMs, handle its own vars, blocks and sides. Enables better recursive FSP support (addresses #1851).
DomainDecomposition factors through FieldDecomposition.
dkarpeyev commented 10 years ago

In 6191ad58171f37da993274fd3847e726e15d3b7f:

Dang! Missing files. Addresses #1851.
dkarpeyev commented 10 years ago

In d3b7ee834373b91e383fe63f62388d966f722829:

Lazy evaluation of embedding IS (addresses #1851).
dkarpeyev commented 10 years ago

In bf32b3533559cfed1ac74cbc484694464427a0bb:

Pre:Renamed FieldSplits --> Splits, FieldSplitPreconditioner --> SplitBasedPreconditioner, made Splits into a Moose system (addresses #1851).
dkarpeyev commented 10 years ago

In d16910ca152b716a3467bb9457a3b5e7bb4c0b3c:

Renamed FieldSplits --> Splits, FieldSplitPreconditioner --> SplitBasedPreconditioner, made Splits into a Moose system (addresses #1851).
dkarpeyev commented 10 years ago

In 207aae11782201746f721d35bc2b375ec67a843c:

Enabling side-based splits (addresses #1851).
dkarpeyev commented 10 years ago

In 5458b09ae507bb8cc6a94a60198d49edeb8216a5:

Working around libMesh's use of MATBAIJ, which interferes with Splits (addresses #1851).
Resurrecting setupSplitBasedPreconditioner() along the way.
andrsd commented 10 years ago

In 8c8b210a642617557bf82cc9483c67e124a1aaad:

Revert "Working around libMesh's use of MATBAIJ, which interferes with Splits (addresses #1851)."
dkarpeyev commented 10 years ago

In 28244cfc8e9d1bf76e6ee77a78bfc3f375332ed6:

Working around libMesh's use of MATBAIJ, which interferes with Splits (addresses #1851).
Resurrecting setupSplitBasedPreconditioner() along the way.
dkarpeyev commented 10 years ago

In 2fc09bef24ac489be3c8501096cceafcb3da4347:

ContactSplit, allows PenetrationLocator-based splits, possibly changing inside Newton loop (addresses #1851).
dkarpeyev commented 10 years ago

In 0e9c6202d77ce41ea33d2d009a3552b18cdd3ca7:

SBP is capable of handling MATBAIJ using a recent libMesh even with petsc-3.3 (addresses #1851).
dkarpeyev commented 10 years ago

In 3e2c33701042a2a513609f6dbf2e9ced288dc89c:

Moving the Splits subsystem into its own subdir (references #1851)
dkarpeyev commented 10 years ago

In 629994ca9c703dcdc879c76cf75cce3c6dc578a3:

Splits: eliminated a memory leak (addresses #1851).
dkarpeyev commented 10 years ago

Splits is not a way to build a preconditioning matrix (PETSc: Pmat), but to build a preconditioner (PETSc:PC). The most important application of Splits is the control over the (hierarchical) construction of PETSc's PCFieldSplit using (a) mesh adjacency, (b) variables, (c) Contact. In particular, Contact is dynamic, coming and going with the timestep, altering the Jacobian sparsity-structure and necessitating a rebuilding/resetting of the preconditioner.

dkarpeyev commented 10 years ago

In a02aea4f3c516baa8cc22a5c395eeab39c4b43fc:

DMMoose: enable SNES/KSP/PC resetting due to dynamic, Contact-based Splits; addresses #1851.
Always attach DMMoose to SNES to handle BAIJ matrices etc., not only to enable PCFieldSplit.
jwpeterson commented 10 years ago

In 2472c4258ee668680219e8e5b4937fa03c2b603e:

Revert "DMMoose: enable SNES/KSP/PC resetting due to dynamic, Contact-based Splits; addresses #1851."
dkarpeyev commented 10 years ago

In d610189521f96023a83508346c79d5a97add9b9c:

DMMoose: enable SNES/KSP/PC resetting due to dynamic, Contact-based Splits; addresses #1851.
Always attach DMMoose to SNES to handle BAIJ matrices etc., not only to enable PCFieldSplit.
dkarpeyev commented 10 years ago

In 99c3400420a3200cfdd870570a440b2969c222fe:

Fixed a bad interaction of PetscDMMoose with FDP. Addresses #1851.
dkarpeyev commented 10 years ago

In 2da8381c36361ce0b5bf588804058478163a5862:

Splits: support for assembled Schur preconditioner; disabled without a recent petsc-dev; addresses #1851.
dkarpeyev commented 10 years ago

In df20010852dfe6f2090e1078bb5e4aabc05a2129:

Splits: top level now in Executioner and tests in 'splits'; addresses #1851.
Option name changes for clarity: a11->A11,self->S.
dkarpeyev commented 10 years ago

In 25a7dd3d75f3748fe3fd218f2d7a497d9b0b4f6c:

Fix PetscDMMoose to check whether (un)contacts are displaced when building splits. Addresses #1851.