Skip to content

Commit

Permalink
Merge branch 'matthewhoffman/mali/enable_thermal_solver' (PR #6559)
Browse files Browse the repository at this point in the history
Activate MALI thermal solver and update configuration to be relevant to both AIS and GIS grids

This PR updates a number of details about the MALI configuration to
support both Antarctica and Greenland Ice Sheet configurations:
* Enables the MALI thermal solver, which is needed to allow evolving
  calving fronts, in preparation for enabling calving
* Adds new logic to make the albany_input.yaml file specific to a mesh.
  This is needed because AIS and GIS meshes use different solver
  boundary conditions that are specified in that file.
* Enables config_remove_icebergs and config_remove_small_islands, two
  options that improve convergence of the velocity solver and are
  typically used in standalone MALI simulations
* Adds additional fields to the MALI history files related to the now
  activated thermal solver, as well as ice-shelf basal melting. Also
  updates the MALI globalStats files to write out all global stats
  instead of the subset that was hardcoded before.
* Updates the
    ERS_Ld5.TL319_oQU240wLI_ais20.MPAS_LISIO_JRA1p5.mpaso-ocn_glcshelf
  test to the MALI ais8to30 grid that was recently added. When the mesh
  was added, the test was failing due to issues with the thermal solver,
  but those have been resolved between MALI thermal solver bug fix and
  improved iceberg handling #6547 and this PR, so we can now update that
  test to the newer mesh.

[NML] for all configurations with MALI
[non-BFB] for all configurations with active MALI
  • Loading branch information
jonbob committed Sep 6, 2024
2 parents 7470acf + e9c56ec commit ccaa4b3
Show file tree
Hide file tree
Showing 10 changed files with 1,507 additions and 82 deletions.
2 changes: 1 addition & 1 deletion cime_config/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@
"SMS.ne30_f19_g16_rx1.A",
"ERS_Ld5.T62_oQU120.CMPASO-NYF",
"ERS.f09_g16_g.MALISIA",
"ERS_Ld5.TL319_oQU240wLI_ais20.MPAS_LISIO_JRA1p5.mpaso-ocn_glcshelf",
"ERS_Ld5.TL319_oQU240wLI_ais8to30.MPAS_LISIO_JRA1p5.mpaso-ocn_glcshelf",
"SMS_P12x2.ne4pg2_oQU480.WCYCL1850NS.allactive-mach_mods",
"ERS_Ln9.ne4pg2_ne4pg2.F2010-MMF1.eam-mmf_crmout",
)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,231 @@
%YAML 1.1
---
ANONYMOUS:

# Discretization Description
Discretization:
#Exodus Output File Name: albany_output.exo

Piro:
# Nonlinear Solver Information
NOX:
Nonlinear Solver: Line Search Based
Line Search:
Full Step:
Full Step: 1.0e+00
Method: Backtrack
Solver Options:
Status Test Check Type: Minimal
Status Tests:
Test Type: Combo
Combo Type: OR
Number of Tests: 2
Test 0:
Test Type: Combo
Combo Type: AND
Number of Tests: 2
Test 0:
Test Type: NormF
Norm Type: Two Norm
Scale Type: Unscaled
Tolerance: 1.0e-03
Test 1:
Test Type: RelativeNormF
Norm Type: Two Norm
Tolerance: 0.9999
Test 1:
Test Type: MaxIters
Maximum Iterations: 100
Printing:
Output Precision: 3
Output Processor: 0
Output Information:
Error: true
Warning: true
Outer Iteration: true
Parameters: false
Details: false
Linear Solver Details: false
Stepper Iteration: true
Stepper Details: true
Stepper Parameters: true

Direction:
Method: Newton
Newton:
Forcing Term Method: Type 2
Rescue Bad Newton Solve: true
Linear Solver:
Write Linear System: false
Tolerance: 1.0e-8

Stratimikos Linear Solver:
Stratimikos:

# Linear Solver Information
Linear Solver Type: Belos
Linear Solver Types:
Belos:
Solver Type: Block GMRES
Solver Types:
Block GMRES:
Output Frequency: 20
Output Style: 1
Verbosity: 33
Maximum Iterations: 200
Block Size: 1
Num Blocks: 200
Flexible Gmres: false
VerboseObject:
Output File: none
Verbosity Level: low

# Preconditioner Information
Preconditioner Type: MueLu
Preconditioner Types:

Ifpack2:
Overlap: 1
Prec Type: ILUT

MueLu:
Matrix:
PDE equations: 2
Factories:
myLineDetectionFact:
factory: LineDetectionFactory
'linedetection: orientation': coordinates
mySemiCoarsenPFact1:
factory: SemiCoarsenPFactory
'semicoarsen: coarsen rate': 14
UncoupledAggregationFact2:
factory: UncoupledAggregationFactory
'aggregation: ordering': graph
'aggregation: max selected neighbors': 0
'aggregation: min agg size': 3
'aggregation: phase3 avoid singletons': true
MyCoarseMap2:
factory: CoarseMapFactory
Aggregates: UncoupledAggregationFact2
myTentativePFact2:
'tentative: calculate qr': true
factory: TentativePFactory
Aggregates: UncoupledAggregationFact2
CoarseMap: MyCoarseMap2
mySaPFact2:
'sa: eigenvalue estimate num iterations': 10
'sa: damping factor': 1.33333e+00
factory: SaPFactory
P: myTentativePFact2
myTransferCoordinatesFact:
factory: CoordinatesTransferFactory
CoarseMap: MyCoarseMap2
Aggregates: UncoupledAggregationFact2
myTogglePFact:
factory: TogglePFactory
'semicoarsen: number of levels': 2
TransferFactories:
P1: mySemiCoarsenPFact1
P2: mySaPFact2
Ptent1: mySemiCoarsenPFact1
Ptent2: myTentativePFact2
Nullspace1: mySemiCoarsenPFact1
Nullspace2: myTentativePFact2
myRestrictorFact:
factory: TransPFactory
P: myTogglePFact
myToggleTransferCoordinatesFact:
factory: ToggleCoordinatesTransferFactory
Chosen P: myTogglePFact
TransferFactories:
Coordinates1: mySemiCoarsenPFact1
Coordinates2: myTransferCoordinatesFact
myRAPFact:
factory: RAPFactory
P: myTogglePFact
R: myRestrictorFact
TransferFactories:
For Coordinates: myToggleTransferCoordinatesFact
myRepartitionHeuristicFact:
factory: RepartitionHeuristicFactory
A: myRAPFact
'repartition: min rows per proc': 3000
'repartition: max imbalance': 1.327e+00
'repartition: start level': 1
myZoltanInterface:
factory: ZoltanInterface
A: myRAPFact
Coordinates: myToggleTransferCoordinatesFact
number of partitions: myRepartitionHeuristicFact
myRepartitionFact:
factory: RepartitionFactory
A: myRAPFact
Partition: myZoltanInterface
'repartition: remap parts': true
number of partitions: myRepartitionHeuristicFact
myRebalanceProlongatorFact:
factory: RebalanceTransferFactory
type: Interpolation
P: myTogglePFact
Coordinates: myToggleTransferCoordinatesFact
Nullspace: myTogglePFact
myRebalanceRestrictionFact:
factory: RebalanceTransferFactory
type: Restriction
R: myRestrictorFact
myRebalanceAFact:
factory: RebalanceAcFactory
A: myRAPFact
TransferFactories: { }
mySmoother1:
factory: TrilinosSmoother
type: LINESMOOTHING_BANDEDRELAXATION
'smoother: pre or post': both
ParameterList:
'relaxation: type': Gauss-Seidel
'relaxation: sweeps': 1
'relaxation: damping factor': 1.0
mySmoother3:
factory: TrilinosSmoother
type: RELAXATION
'smoother: pre or post': both
ParameterList:
'relaxation: type': Gauss-Seidel
'relaxation: sweeps': 1
'relaxation: damping factor': 1.0
mySmoother4:
factory: TrilinosSmoother
type: RELAXATION
'smoother: pre or post': pre
ParameterList:
'relaxation: type': Gauss-Seidel
'relaxation: sweeps': 4
'relaxation: damping factor': 1.0
Hierarchy:
max levels: 7
'coarse: max size': 2000
verbosity: None
Finest:
Smoother: mySmoother1
CoarseSolver: mySmoother4
P: myRebalanceProlongatorFact
Nullspace: myRebalanceProlongatorFact
CoarseNumZLayers: myLineDetectionFact
LineDetection_Layers: myLineDetectionFact
LineDetection_VertLineIds: myLineDetectionFact
A: myRebalanceAFact
Coordinates: myRebalanceProlongatorFact
Importer: myRepartitionFact
All:
startLevel: 1
Smoother: mySmoother4
CoarseSolver: mySmoother4
P: myRebalanceProlongatorFact
Nullspace: myRebalanceProlongatorFact
CoarseNumZLayers: myLineDetectionFact
LineDetection_Layers: myLineDetectionFact
LineDetection_VertLineIds: myLineDetectionFact
A: myRebalanceAFact
Coordinates: myRebalanceProlongatorFact
Importer: myRepartitionFact

Loading

0 comments on commit ccaa4b3

Please sign in to comment.