diff --git a/compass/landice/tests/ensemble_generator/ensemble_templates/ismip7_ais_calving_calibration/spinup/__init__.py b/compass/landice/tests/ensemble_generator/ensemble_templates/ismip7_ais_calving_calibration/spinup/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compass/landice/tests/ensemble_generator/ensemble_templates/ismip7_ais_calving_calibration/spinup/albany_input.yaml b/compass/landice/tests/ensemble_generator/ensemble_templates/ismip7_ais_calving_calibration/spinup/albany_input.yaml new file mode 100644 index 0000000000..be0ba453aa --- /dev/null +++ b/compass/landice/tests/ensemble_generator/ensemble_templates/ismip7_ais_calving_calibration/spinup/albany_input.yaml @@ -0,0 +1,238 @@ +%YAML 1.1 +--- +ANONYMOUS: + Problem: + Depth Integrated Model: true + LandIce Field Norm: + sliding_velocity_basalside: + Regularization Type: Given Value + Regularization Value: 1.0e-4 + LandIce BCs: + BC 0: + Basal Friction Coefficient: + Type: Power Law + Power Exponent: 0.2 + Mu Type: Field + Effective Pressure Type: Constant + Effective Pressure: 1.0 + # Zero Effective Pressure On Floating Ice At Nodes: true + Zero Beta On Floating Ice: true + +# 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: NormF + Norm Type: Two Norm + Scale Type: Scaled + Tolerance: 1.0e-05 + Test 1: + Test Type: MaxIters + Maximum Iterations: 50 + 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: Constant + 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 diff --git a/compass/landice/tests/ensemble_generator/ensemble_templates/ismip7_ais_calving_calibration/spinup/ensemble_generator.cfg b/compass/landice/tests/ensemble_generator/ensemble_templates/ismip7_ais_calving_calibration/spinup/ensemble_generator.cfg new file mode 100644 index 0000000000..bb733a1324 --- /dev/null +++ b/compass/landice/tests/ensemble_generator/ensemble_templates/ismip7_ais_calving_calibration/spinup/ensemble_generator.cfg @@ -0,0 +1,89 @@ +# selector for ensemble template resources +[ensemble_generator] + +# subdirectory within ensemble_templates/ where branch_ensemble options are located +ensemble_template = ismip7_ais_calving_calibration + +# config options for setting up an ensemble + +# start and end numbers for runs to set up and run +# Run numbers should be zero-based. +# Additional runs can be added and run to an existing ensemble +# without affecting existing runs, but trying to set up a run +# that already exists will generate a warning and skip that run. +# These values do not affect viz/analysis, which will include any +# runs it finds. +start_run = 0 +end_run = 5 + +# sampling_method can be 'sobol' for a space-filling Sobol sequence, +# 'uniform' for linear sampling, or 'log-uniform' for logarithmic sampling. +# Uniform and log-uniform are most appropriate for a single-parameter +# sensitivity study because they sample each active parameter using the +# same rank ordering, thus sampling only a small fraction of parameter space +# in higher dimensions. +sampling_method = uniform + +# maximum number of samples to be considered. +# max_samples needs to be greater or equal to (end_run + 1) +# When using uniform or log-uniform sampling, max_samples should equal +# (end_run + 1). +# When using Sobol sequence, max_samples ought to be a power of 2. +# max_samples should not be changed after the first set of ensemble. +# So, when using Sobol sequence, max_samples might be set larger than +# (end_run + 1) if you plan to add more samples to the ensemble later. +max_samples = 32 + +# basin for comparing model results with observational estimates in +# visualization script. +# Basin options are defined in compass/landice/ais_observations.py +# If desired basin does not exist, it can be added to that dataset. +# (They need not be mutually exclusive.) +# If a basin is not provided, observational comparisons will not be made. +basin = None + +# fraction of CFL-limited time step to be used by the adaptive timestepper +cfl_fraction = 0.5 + +# number of tasks that each ensemble member should be run with +ntasks = 128 + +[spinup_ensemble] + +# Path to the initial condition input file. +input_file_path = /global/cfs/cdirs/fanssie/MALI_projects/ISMIP6-2300/initial_conditions/AIS_4to20km_20230105/relaxation_0TGmelt_10yr/relaxed_10yrs_4km.nc + +# the value of the friction exponent used for the calculation of muFriction +# in the input file +orig_fric_exp = 0.2 + +# Path to thermal forcing file for the mesh to be used +TF_file_path = /global/cfs/cdirs/m4288/users/trhille/ISMIP7/test_processing/AIS/CESM2-WACCM_historical/ocean_thermal_forcing/AIS_4to20km_r01_20220907_thermal_forcing_CESM2-WACCM_historical_1980-2015.nc + +# Path to SMB forcing file for the mesh to be used +SMB_file_path = /global/cfs/cdirs/m4288/users/trhille/ISMIP7/test_processing/AIS/CESM2-WACCM_historical/atmosphere/AIS_4to20km_r01_20220907_SMB_CESM2-WACCM_historical_1980-2015.nc + +# Path to runoff forcing file for the mesh to be used +runoff_file_path = /global/cfs/cdirs/m4288/users/trhille/ISMIP7/test_processing/AIS/CESM2-WACCM_historical/atmosphere/AIS_4to20km_r01_20220907_runoff_CESM2-WACCM_historical_1980-2015.nc + +# Parameter definitions are listed in this section in sampling order. +# Use the prefix "nl." for float parameters that map to namelist options. +# Each parameter must define " = min, max". +# Namelist parameters must also define +# ".option_name = namelist_option". +[ensemble.parameters] +# special parameters (handled by custom code) +# None +# +# namelist float parameters (generic handling) +# range is 10x to either side of default +nl.calving_parameter = 80e3, 300e3 +nl.calving_parameter.option_name = config_floating_von_Mises_threshold_stress + + +[parallel] +account = m4274 +qos = regular + +[job] +wall_time = 1:00:00 diff --git a/compass/landice/tests/ensemble_generator/ensemble_templates/ismip7_ais_calving_calibration/spinup/namelist.landice b/compass/landice/tests/ensemble_generator/ensemble_templates/ismip7_ais_calving_calibration/spinup/namelist.landice new file mode 100644 index 0000000000..6494e2f3b3 --- /dev/null +++ b/compass/landice/tests/ensemble_generator/ensemble_templates/ismip7_ais_calving_calibration/spinup/namelist.landice @@ -0,0 +1,91 @@ + config_velocity_solver = 'FO' + config_do_velocity_reconstruction_for_external_dycore = .false. + config_unrealistic_velocity = 00.00159 + config_nonconvergence_error = .false. + config_flowParamA_calculation = 'PB1982' + + config_thickness_advection = 'fo' + config_tracer_advection = 'fo' + config_zero_sfcMassBalApplied_over_bare_land = .true. + config_apply_smb_sat_lapse_rate = .true. + + config_uplift_method = 'none' + config_slm_coupling_interval = 5 + config_MALI_to_SLM_weights_file = 'mapfile_mali_to_slm.nc' + config_SLM_to_MALI_weights_file = 'mapfile_slm_to_mali.nc' + + config_calving = 'von_Mises_stress' + config_grounded_von_Mises_threshold_stress_source = 'scalar' + config_grounded_von_Mises_threshold_stress = 1.0e6 + config_floating_von_Mises_threshold_stress_source = 'scalar' + config_floating_von_Mises_threshold_stress = 1.0e6 + + config_apply_calving_mask = .false. + config_calculate_damage = .true. + config_damage_calving_threshold = 0.95 + config_damage_calving_method = 'none' + config_calving_speed_limit = 1.0 + config_restore_calving_front = .false. + config_remove_icebergs = .true. + config_remove_small_islands = .true. + config_distribute_unablatedVolumeDynCell = .true. + config_calving_error_threshold = 100000.0 + + config_thermal_solver = 'temperature' + config_thermal_calculate_bmb = .true. + config_temperature_init = 'file' + config_thermal_thickness = 0.0 + config_surface_air_temperature_source = 'file' + config_basal_heat_flux_source = 'file' + + config_basal_mass_bal_float = 'ismip6' + config_front_mass_bal_grounded = 'ismip6' + config_use_3d_thermal_forcing_for_face_melt = .true. + config_add_ocean_thermal_forcing = 0.0 + + config_ice_density = 910.0 + config_ocean_density = 1028.0 + config_sea_level = 0.0 + config_flowLawExponent = 3.0 + config_dynamic_thickness = 10.0 + + config_dt = '0000-01-00_00:00:00' + config_time_integration = 'forward_euler' + config_adaptive_timestep = .true. + config_adaptive_timestep_calvingCFL_fraction = 0.8 + config_adaptive_timestep_include_calving = .false. + config_min_adaptive_timestep = 60 + config_max_adaptive_timestep = 3.154e7 + config_adaptive_timestep_CFL_fraction = 0.8 + config_adaptive_timestep_include_DCFL = .false. + config_adaptive_timestep_force_interval = '0000-01-00_00:00:00' + config_timeaveraging_interval = '0001-00-00_00:00:00' + config_enable_timeAvgRestarts = .false. + + config_do_restart = .false. + config_restart_timestamp_name = 'restart_timestamp' + config_start_time = '2000-01-01_00:00:00' + config_stop_time = '2015-01-01_00:00:00' + config_calendar_type = 'gregorian' + + config_stats_interval = 0 + config_write_stats_on_startup = .false. + config_stats_cell_ID = 1 + config_write_output_on_startup = .true. + + config_always_compute_fem_grid = .true. + + config_ocean_connection_N = .false. + config_SGH = .false. + + config_AM_globalStats_enable = .true. + config_AM_globalStats_compute_interval = 'output_interval' + config_AM_globalStats_stream_name = 'globalStatsOutput' + config_AM_globalStats_compute_on_startup = .true. + config_AM_globalStats_write_on_startup = .true. + + config_AM_regionalStats_enable = .true. + config_AM_regionalStats_compute_interval = 'output_interval' + config_AM_regionalStats_stream_name = 'regionalStatsOutput' + config_AM_regionalStats_compute_on_startup = .true. + config_AM_regionalStats_write_on_startup = .true. diff --git a/compass/landice/tests/ensemble_generator/ensemble_templates/ismip7_ais_calving_calibration/spinup/streams.landice b/compass/landice/tests/ensemble_generator/ensemble_templates/ismip7_ais_calving_calibration/spinup/streams.landice new file mode 100644 index 0000000000..d4ebc03406 --- /dev/null +++ b/compass/landice/tests/ensemble_generator/ensemble_templates/ismip7_ais_calving_calibration/spinup/streams.landice @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +