mirror of
https://github.com/OPM/opm-simulators.git
synced 2026-10-26 07:30:08 -05:00
Introduce a prototype for solving the reservoir and well degrees of freedom as a single coupled linear system. This complements the existing approach of handling wells separately through Schur complement elimination. Key design choices: - The linear solve operates on the full coupled system (reservoir + well DOFs) to simplify the solver architecture and reduce special-case well handling - The underlying solver uses standard sparse matrices with no well-aware operators, improving modularity and reducing code complexity - The included preconditioner is configurable to reproduce standard CPR behavior, providing a baseline for validation before further performance tuning - An approximate well-block solve is supported for potential performance gains Important changes: - Add linear solver implementation with coupled system support - Configure preconditioner to match existing CPR behavior for correctness - Remove need for separate well-block elimination in the linear solve path - Update solver selection to allow --linear-solver=system_cpr option This implementation serves as a prototype to validate the coupled system approach before further optimization and benchmarking.
26 lines
610 B
JSON
26 lines
610 B
JSON
{
|
|
"maxiter": "20",
|
|
"tol": "0.005",
|
|
"verbosity": "0",
|
|
"solver": "bicgstab",
|
|
"preconditioner": {
|
|
"type": "system_cpr",
|
|
"reservoir_smoother": {
|
|
"maxiter": "1",
|
|
"tol": "0.005",
|
|
"verbosity": "0",
|
|
"solver": "preconditioner2inverseoperator",
|
|
"preconditioner": {
|
|
"type": "paroverilu0",
|
|
"relaxation": "1"
|
|
}
|
|
},
|
|
"well_solver": {
|
|
"maxiter": "1",
|
|
"tol": "0.005",
|
|
"verbosity": "0",
|
|
"solver": "umfpack"
|
|
}
|
|
}
|
|
}
|