-
Notifications
You must be signed in to change notification settings - Fork 578
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ShyLU_DD/FROSch: Replace FROSch::SubomainSolver by FROSch::SolverFactory #8825
ShyLU_DD/FROSch: Replace FROSch::SubomainSolver by FROSch::SolverFactory #8825
Conversation
…domain-solver * 'develop' of ssh://github.com/trilinos/Trilinos: (189 commits) Update Intrepid2_Basis.hpp Stokhos: Update for MueLu changes Update Intrepid2_Basis.hpp Intrepid2 - add host basis function interface MueLu: Matthias' changes Shylu: pass non-const matrix to MueLu Intrepid2 - hcurl in, hdiv in done Intrepid2 - hvol cn and hgrad tet comp12 Intrepid2 - hdiv i1 Intrepid2 - fix spelling Intrepid2 - cn tet and tri MueLu: Working my way around a block-size mismatch MueLu: Fixing unit tests Tacho - fix the bug described in trilinos#8757 Intrepid2 - hcurl I1 and hvol c0 Intrepid2 - exclude fad type tests include quad and line Intrepid2 - line quad hex Cn function Intrepid2 wedge c2 Intrepid2 - Tet C2 done Intrepid2 - hgrad hex c2 ...
…domain-solver * 'develop' of ssh://github.com/trilinos/Trilinos: (41 commits) MueLu: in configure, print out missing ETI setting MueLu: undo CMake change, should be its own PR Ifpack2: undo some find-and-replace in comments Ifpack2: remove unneeded includes Use cached MV to replace getColumnMapMV from CrsMatrix Removed unneeded !constantStride paths Added required syncs/modifies for vectors More refactoring to get rid of redundant functions Using refactored block CRS local apply, unify GS/SGS Reduce redundant code in CRS (GS/SGS use same fn) Enabled new local GS code for CRS Moved BlockCrs GS functionality into Relaxation Moved Tpetra CRS GS into Ifpack2 Relaxation MueLu: Adding Aggregate size percentiles to AggregateQuality Patch in KokkosKernels trilinos#872 FROSch: Convert enum NullSpaceType to scoped enum Panzer: Add edge/face blocks to STK_ExodusReaderFactory (trilinos#8779) STK: Snapshot 02-18-21 14:14 Issue 8391. Switched to C++17 standard for GCC 8.3 build. Reset ModuleHelper.py to develop version ... # Conflicts: # packages/shylu/shylu_dd/frosch/src/SchwarzPreconditioners/FROSch_TwoLevelBlockPreconditioner_def.hpp
Status Flag 'Pre-Test Inspection' - Auto Inspected - Inspection Is Not Necessary for this Pull Request. |
Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects: Pull Request Auto Testing STARTING (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_10.1.105
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
Using Repos:
Pull Request Author: searhein |
Status Flag 'Pull Request AutoTester' - Jenkins Testing: all Jobs PASSED Pull Request Auto Testing has PASSED (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_10.1.105
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
|
Status Flag 'Pre-Merge Inspection' - - This Pull Request Requires Inspection... The code must be inspected by a member of the Team before Testing/Merging |
All Jobs Finished; status = PASSED, However Inspection must be performed before merge can occur... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@searhein Thanks for this refactoring! This will make future extensions much easier, since interfaces to other packages are now nicely separated into their own classes.
I'll click "request changes", since I spotted a few things to be fixed. Most of my comments however are just remarks to think about (no mandatory changes, rather a question of coding style).
packages/shylu/shylu_dd/frosch/src/SchwarzOperators/FROSch_AlgebraicOverlappingOperator_def.hpp
Show resolved
Hide resolved
packages/shylu/shylu_dd/frosch/src/SolverInterfaces/FROSch_Amesos2SolverEpetra_def.hpp
Outdated
Show resolved
Hide resolved
packages/shylu/shylu_dd/frosch/src/SolverInterfaces/FROSch_Amesos2SolverTpetra_def.hpp
Outdated
Show resolved
Hide resolved
packages/shylu/shylu_dd/frosch/src/SolverInterfaces/FROSch_BelosSolverTpetra_def.hpp
Show resolved
Hide resolved
packages/shylu/shylu_dd/frosch/src/SolverInterfaces/FROSch_MueLuPreconditioner_decl.hpp
Show resolved
Hide resolved
packages/shylu/shylu_dd/frosch/src/SolverInterfaces/FROSch_MueLuPreconditioner_def.hpp
Show resolved
Hide resolved
packages/shylu/shylu_dd/frosch/src/SolverInterfaces/FROSch_SolverFactory_def.hpp
Outdated
Show resolved
Hide resolved
packages/shylu/shylu_dd/frosch/src/SolverInterfaces/FROSch_SolverFactory_def.hpp
Outdated
Show resolved
Hide resolved
packages/shylu/shylu_dd/frosch/src/SolverInterfaces/FROSch_Solver_def.hpp
Outdated
Show resolved
Hide resolved
@searhein What about the old files for the subdomain solver, i.e. |
…domain-solver * 'develop' of ssh://github.com/trilinos/Trilinos: (36 commits) Phalanx: utilities for virtual functions on device (trilinos#8840) Correct a setenv left in bash scripts. MueLu: I really hate when the autotester decides to freak out about code I didn't touch but now it is my responsibility to fix if I ever want to merge this PR MueLu: Going for gold pamgen: Fixing uninitialized memory valigrind error in RTC Update Compadre Toolkit to v1.3.3 Oops MueLu: Adding aggregates to export data MueLu: Adding aggregates to export data SEACAS: Disable tests that are failing on vortex Intrepid2 - missing typo MueLu: More Phase2a controls Panzer: Fix for ghost orientations in worksets. Implement getHostBasis() in newer Basis subclasses (trilinos#8811) Teuchos core: Reorder noreturn and DLL export tpetra: removed Doxygen comments with incorrect advice on including _decl files Intrepid2: modified CellGeometry setJacobian() implementation to allow reuse of reference-space basis gradients. STK: Snapshot 02-24-21 10:53 Tempus: Move Stepper Helper Functions to Implementation Piro: solve a bug when more than 1 response is used ...
…sos2SolverEpetra_def.hpp Co-authored-by: Matthias Mayr <[email protected]>
…sos2SolverTpetra_def.hpp Co-authored-by: Matthias Mayr <[email protected]>
…osSolverTpetra_def.hpp Co-authored-by: Matthias Mayr <[email protected]>
… into subdomain-solver * 'subdomain-solver' of ssh://github.com/searhein/Trilinos: Update packages/shylu/shylu_dd/frosch/src/SolverInterfaces/FROSch_SolverFactory_def.hpp
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@searhein Looks good to me! Maybe a true ShyLu developer should take a good look as well...
@mayrmt Thanks :) |
Status Flag 'Pull Request AutoTester' - User Requested Retest - Label AT: RETEST will be reset after testing. |
Status Flag 'Pre-Test Inspection' - Auto Inspected - Inspection Is Not Necessary for this Pull Request. |
Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects: Pull Request Auto Testing STARTING (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_10.1.105
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
Using Repos:
Pull Request Author: searhein |
Status Flag 'Pull Request AutoTester' - Jenkins Testing: 1 or more Jobs FAILED Note: Testing will normally be attempted again in approx. 2 Hrs 30 Mins. If a change to the PR source branch occurs, the testing will be attempted again on next available autotester run. Pull Request Auto Testing has FAILED (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_10.1.105
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
Console Output (last 100 lines) : Trilinos_pullrequest_gcc_8.3.0 # 3825 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_gcc_7.2.0_serial # 1397 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_gcc_7.2.0_debug # 1887 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_intel_17.0.1 # 9235 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_cuda_10.1.105 # 688 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_clang_10.0.0 # 2050 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_python_3 # 4724 (click to expand)
|
Status Flag 'Pull Request AutoTester' - User Requested Retest - Label AT: RETEST will be reset after testing. |
Status Flag 'Pre-Test Inspection' - Auto Inspected - Inspection Is Not Necessary for this Pull Request. |
Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects: Pull Request Auto Testing STARTING (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_10.1.105
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
Using Repos:
Pull Request Author: searhein |
Status Flag 'Pull Request AutoTester' - Jenkins Testing: all Jobs PASSED Pull Request Auto Testing has PASSED (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_10.1.105
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
|
Status Flag 'Pre-Merge Inspection' - SUCCESS: The last commit to this Pull Request has been INSPECTED AND APPROVED by [ mayrmt ]! |
Status Flag 'Pull Request AutoTester' - AutoMerge IS ENABLED, but the Label AT: AUTOMERGE is not set. Either set Label AT: AUTOMERGE or manually merge the PR... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for these changes!
Status Flag 'Pull Request AutoTester' - Pull Request will be Automerged |
Merge on Pull Request# 8825: IS A SUCCESS - Pull Request successfully merged |
@trilinos/shylu
Motivation
In order to order to get rid of the old
SubdomainSolver
class, I introduced aSolverFactory
in order to handle the interfaces to different solver packages in FROSch. This will make it much easier to deal with the different existing interfaces and to add new ones. Moreover, it is backwards compatible in the sense that this should not require any changes in the parameter lists compared to the older solver interface.Moreover, for the case of using
Tpetra
objects, I changed the construction ofGlobalBasisMatrix_
in the classCoarseSpace
, such that, when calling the constructor, a column map is now specified. Hence, I also switched to using local indices for assembling the matrix.In addition to that, I did some smaller changes at various places in the code.
Related Issues
Epetra
case; see my question Epetra: Error in matrix-matrix multiplication #8826.Testing
I added a complete set of new tests for the new class
SolverFactory
. Moreover, all previous tests run smoothly with the solver interfaces.