Skip to content
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

MOM6+SIS2+icebergs: Response to the code review #396

Conversation

mom6bot
Copy link
Contributor

@mom6bot mom6bot commented Jun 26, 2023

MOM6+SIS2+icebergs: Response to the code review

MOM6+SIS2+icebergs: Update SIS2 to use the new IO interface

MOM6+SIS2+icebergs: Replaced type(real) with real in iceberg.F90 subroutine calve_fl_icebergs. Added a .nml that was missing from the footloose test in previous commits. A few empty, but necessary, directories were missing from the test cases in previous commits, so modified the makeberg run files to create these directories.

  • NOAA-GFDL/icebergs@a7c0676 Replaced type(real) with real in iceberg.F90 subroutine calve_fl_icebergs. Added a .nml that was missing from the footloose test in previous commits. A few empty, but necessary, directories were missing from the test cases in previous commits, so modified the makeberg run files to create these directories.
  • NOAA-GFDL/icebergs@66637d6 removed redundant file
  • NOAA-GFDL/icebergs@796d591 Added script to download data for the a68_test. Simplified the conda environment tests/iceberg_env.yml. Edited some READMEs.
    MOM6+SIS2+icebergs: update CPP ifdef logic to set "file version"
  • NOAA-GFDL/icebergs@338e8b2 more doxy comments
  • NOAA-GFDL/icebergs@4248102 doxygen fix?
  • NOAA-GFDL/icebergs@3002ee7 Some further cleanup of A68, simplifying the read-in of data
  • NOAA-GFDL/icebergs@cdd773a Removed non-DEM breaking of bonds. Previous attempts to account for bond-breaking without DEM-mode was not fully-successful because without DEM torque and shear terms, 'strings' of bonded particles one layer thick would tend to bend unphysically without breaking. Furthermore, the physical basis for non-DEM fracture was lacking compared to DEM-mode fracture, anyway. Therefore, I removed all code related to non-DEM fracture, which substantially simplifies much of the code. For example, this eliminated 6 variables (rotation, n_frac_var, n_strain_rate, accum_bond_rotation, lon_prev, lat_prev).
    MOM6+SIS2+icebergs: Cleanup, documentation, and removal of unused features. Also cleaned-up corresponding tests .nmls.
    MOM6+SIS2+icebergs: adding footloose=.true. and fl_init_child_xy_by_pe=.true. (for backwards compatibility), and eliminating fl_use_l_scale, fl_l_scale_erosion_only, fl_r, fl_r_s, fl_k_scale_by_perimeter, fl_bits_scale_l, fl_bits_scale_w, and fl_bits_scale_t.
  • NOAA-GFDL/icebergs@f4d45da initialize some additional variables for new icebergs in calve_icebergs, for backwards compatibility in chksums when footloose=.true.
    MOM6+SIS2+icebergs:
  • NOAA-GFDL/icebergs@5a5a175 Modified calve_icebergs so that new berg prev/old velocities and positions are not initialized unless using interactive icebergs. This has no impact except enabling the berg restart chksums to match the reference runs in the om4 regression tests (the regression tests pass either way, but this modification undoes a previous change that caused mismatch in the berg restart chksums only).
  • NOAA-GFDL/icebergs@b4ce7eb Fixed calve_icebergs so that the random numbers for tidal drift are only calculated under the new scheme for interpolation of gridded fields to bergs (bergs%old_interp_flds_order=.false.). This prevents a crash in the OM4p5 basic regression test. Added a safeguard that makes sure only Verlet integration is allowed for MTS, DEM, and footloose
  • NOAA-GFDL/icebergs@dd55cca tests/collision_tests/makeberg used to be dependent on Alon's scripts in tests/Iceberg_repository, but now moved those few scripts directly to tests/collision_tests/makeberg and deleted tests/Iceberg_repository. This deleted directory was Alon's KID/ice shelf tests on the ISOMIP geometry, which are outdated (e.g. they may rely on specific branches of the coupler and SIS2, and job scripts are not written for slurm)
  • NOAA-GFDL/icebergs@9bd3b77 Cleaned up the makeberg directories and files
  • NOAA-GFDL/icebergs@7a52136 Removed energy monitoring. While it was previously useful for development, it was also clunky, it only worked in non-DEM mode (without torques), and it added a dozen or so variables. Removed energy-based bond-breaking as well.
    MOM6+SIS2+icebergs: fracture_testing_initialization, init_dem_params, uniaxial_test,use_spring_land_contact,and calculate_force_land_contact
  • NOAA-GFDL/icebergs@51cba6b more clean up -removed 'dem_shear_for_frac_only' -set new_mts to default -converted some print statements into write statements -removed some old commented code -cleaned up A68a code in icebergs.F90 -added comments for some namelist options -added option 'print_fracture' to write bond/particle info to screen when fracture occurs
  • NOAA-GFDL/icebergs@e13d1b6 Removed experimental use_damage and power_ground options
  • NOAA-GFDL/icebergs@d7a8bab Added A68 test back into repository and driver. Tested it with new nml option 'use_broken_bonds_for_substep_contact=.true.', which yielded about a 15% speedup compared to previously
  • NOAA-GFDL/icebergs@6d4d4d4 Added bond variable 'broken' to track if a bond is broken (1) or intact (0). Added namelist option 'use_broken_bonds_for_substep_contact', which if true, identifies a pair of particles as contacting during the sub-steps if and only if the bond between them is broken (according to the new 'broken' variable'). This is more computationally-efficient than searching for contact pairs in the current and neighboring grid cells. Both the new 'broken' variable and 'use_broken_bonds_for_substep_contact' option can only be used for iKID multiple time step runs in dem-mode (dem=.true.).
  • NOAA-GFDL/icebergs@33a8bca removed experimental option to account for ocean/wind curl on particle torque, because it has minimal effect and is therefore unused anyway
  • NOAA-GFDL/icebergs@9399b38 Combined the footloose tests into one directory. Also completed a directory of tests for collision using either the original KID scheme, KID+MTS, or iKID. Eliminated unused tests.
    MOM6+SIS2+icebergs: consolidated to a single test, tuned, and recorded chksum
  • NOAA-GFDL/icebergs@2bf5e75 Added separate test cases for footloose_poisson (calve child bergs from iceberg edges similarly to England et al., 2020, with some geometric features from Huth et al., 2022) and footloose_physical (physically based parameterization of footloose calving of child bergs from iceberg edges, following Huth et al., 2022). Removed the A68a test case from the driver
  • NOAA-GFDL/icebergs@28a755d changes towards passing om4p5 jra55 regression tests. In absence of DEM,MTS, or footloose, reset when grid to particle intepolations occur to the original convention. Only save footloose variables in restart files if footloose is active.
  • NOAA-GFDL/icebergs@e730ef2 documented file name variables for particle and bond trajectories
  • NOAA-GFDL/icebergs@20cb345 reset input_freq_distribution to false, the old default
  • NOAA-GFDL/icebergs@1ee47c1 merged in mpp_self_sync modification from dev/gfdl
  • NOAA-GFDL/icebergs@b5a4bec Cleanup of beam tests
  • NOAA-GFDL/icebergs@2686245 added test dem_test_contact, for varying L_ij, the critical-interactive-length scale, for MTS-DEM simulations. Artifically increasing L_ij is needed to prevent overlapping of conglomerates under contact if their particle radii are low. Also added long_run_no_inc_contact_dist.sh and .nml in tests/a68, to test A68a test without increaing L_ij (it has essentially no effect, given the large particle radii). Some edits to icebergs.F90 to increase computational efficiency.
  • NOAA-GFDL/icebergs@b857d37 Delete makeberg-checkpoint.ipynb
  • NOAA-GFDL/icebergs@684e66c Delete makeberg.ipynb
  • NOAA-GFDL/icebergs@1a02384 -Tuned new run for paper using fewer MTS sub-steps (90 vs 200). Adjusted README accordingly. -Achieved about a 5x speedup by changing code so that forces for only one of the two bonds in a pair have to be evaluated during sub-steps, eliminating the call to process MTS sub-step contact with other elements in the same conglomerate for interior (fully-bonded) elements (to which this contact does not apply), and reducing the search range for this contact when it is needed (for non-fully bonded elements). -Increased parallelization buffer width +1*number_of_bonds to accomodate variable for relative rotation of bonds
    MOM6+SIS2+icebergs: 1. reduce number of calculations in calculate_force_dem 2. only enforce “force_convergence” on MTS long step if there is contact between conglomerates -New default Rearth. Can also specify Rearth in the .nml -nml option to use a power-law or linear grounding drag -relative rotation between bonded particles is now tracked as a variable, rather than calculating it from the tracked rotation of each particle. Probably a better approach for simulations over long timescales, where tracked rotation values may become extremely large -Fixed the maximum normal stress criteria to include the influence of bond bending. -Added 2 new fracture criteria based on Skjetne and Hansen 2019 (fracture_criterion=‘computed’ or ‘computer_s’). Currently unused.
  • NOAA-GFDL/icebergs@be810d9 added berg velocities to save_short_traj. added option to save trajectories of footloose child bergs with areas exceeding a given threshold
  • NOAA-GFDL/icebergs@50d8c28 added footloose bergy bits to grd%bergy_mass diagnostic
  • NOAA-GFDL/icebergs@b3e6395 fix diagnostic for gridded melt associated with footloose child bergs
    MOM6+SIS2+icebergs: (1) specify an area threshold that must be exceeded to save, (2) save all trajectories when some year is passed (nml parameter save_all_traj_year), (3) save all trajectories by initial mass class (see nml parameters save_nonfl_traj_by_class, save_traj_by_class_start_mass_thres_n, save_traj_by_class_start_mass_thres_s, traj_area_thres_sntbc) -Added a fix for a floating-error for that sometimes occurred when using input_freq_distribution, where the recalculated distributions would not add up to one.
  • NOAA-GFDL/icebergs@16e94cc -Modified perimeter scaling so that the new parent berg shape is determined by subtracting ice from both the length and width, rather than just the length. -Rearranged code so that interpolations from grid to particles occurs outside of evolve_icebergs -set default for input_freq_distribution to True, in accordance with the given default distribution and distribution_n. -Output thickness with trajectories if and only if save_fl_traj=.True. -Set the defauly for save_fl_traj to .True.
  • NOAA-GFDL/icebergs@6585a86 more documentation
  • NOAA-GFDL/icebergs@40e0d44 (1) Added real nml parameter traj_area_thres, a threshold for berg area (km^2) that must be exceeded to save a non-bonded berg trajectory. This will reduce computational cost of producing trajectory data, by ignoring trajectories of small bergs. The BYU/NIC database of berg trajectories ignores bergs with areas less than 5 km^2, so setting traj_area_thres=5 would be appropriate to generate modeled trajectories for comparison. (2) Added documentation where it was missing.
  • NOAA-GFDL/icebergs@677fdb1 fix traj buffer width
  • NOAA-GFDL/icebergs@f631618 removed useless nml parameter fl_melt_as_bergy_bits. Added nml parameter save_fl_traj to save masses and footloose parameters in the berg trajectories.
    MOM6+SIS2+icebergs: if the random initialization scheme fails to initialize the new berg on the current PE, an attempt is made to initialize it at one of the parent berg corners on the current PE.
  • NOAA-GFDL/icebergs@e27b158 -Fixed an error (again) in the calculation for the max number of footloose child bergs that can be calved from a parent berg over a time step. The previous way was often enforcing one less footloose event that it should have, according to England 2020.
    MOM6+SIS2+icebergs: allow k>1, and modify fl_bits_src on grid after calving the new berg so that the FL bits budget is still correct
  • NOAA-GFDL/icebergs@8c92a8c A few fixes to displace_fl_bergs to ensure new child berg is calved onto the computational domain. Added testing of the option to convert footloose bits to a new berg upon accumulating enough mass.
    MOM6+SIS2+icebergs: the original definition, where radius corresponds to the true iceberg area (L*W). (11) Cleaned up the line lengths where namelist parameters are listed in icebergs_framework.F90
  • NOAA-GFDL/icebergs@53cb93c When approximating the dimensions of footloose bits, now apply scaling of length, width, and thickness before rolling correction, rather than after
  • NOAA-GFDL/icebergs@a43341e fix lon/lat mixup for n/s hemisphere berg calving distribution/initial thickness&mass
  • NOAA-GFDL/icebergs@80928ae fixed operator splitting error in footloose thermodynamics
  • NOAA-GFDL/icebergs@2133641 quick fix to default N hemisphere initial thicknesses. Removed unnecessary line in footloose part of thermodynamics
  • NOAA-GFDL/icebergs@cf1ce33 The mass associated with erosion of FL bits can now be added to bergy bits, rather than melting immediately. Rewrote initialization/calving of new bergs so that values of parameters (initial dimensions, distribution, mass scaling, etc) can be specified separately each hemisphere.
  • NOAA-GFDL/icebergs@a9deeea a few minor changes to footloose bits regarding scaling and rolling. Separated the Me and Mv melt functions for footloose bits from parent berg, as these melt terms will be different for the parent berg if there is bonding. Added in footloose bits area when spreading berg mass to grid, assuming that footloose bits have the same thickness as the parent berg (Note this is just an approximation, as FL bergs should not have the same thickness, but not sure at this point if including FL area makes a difference, anyway)
  • NOAA-GFDL/icebergs@81f5b84 some minor edits to budgets. Added SST as nml parameter in the driver
  • NOAA-GFDL/icebergs@1003d75 separated footloose bits fully from bergy bits, though footloose bits can still be melted as bergy bits with new nml parameter fl_melt_as_bergy_bits. Added fl_bits_scale_l, fl_bits_scale_w, and fl_bits_scale_t nml parameters for specifying scaled dimensions of representative FL bits berg for melting vs. the dimensions of a new fl berg. Modified all budgets code to accomodate fl bits separately from bergy bits
  • NOAA-GFDL/icebergs@e720f7e finished preliminary footloose bits option, where footloose bergs are tracked and evolved as a group without advecting away from their parent bergs
  • NOAA-GFDL/icebergs@0c6c964 quick fix of a mass calculation error for option where footloose mass added to bergy bits
  • NOAA-GFDL/icebergs@a6ec49d fix that should prevent displaced footloose bergs from initializing into land cells. Added option to just convert footloose bergs into bergy bits. Partially implemented option to track footloose bergs similarly to (but separately from) bergy bits, where footloose bergs are tracked with the parent berg, and melted/eroded as a group
  • NOAA-GFDL/icebergs@7828b3f added footloose displacement for lat/lon coords as well as cartesian
  • NOAA-GFDL/icebergs@fefb646 amended previous footloose option for assigning child berg positions to random corners of parent berg. Now, assign to random positions along edges of parent berg
  • NOAA-GFDL/icebergs@a58fa5a added option to position new footloose child bergs to a random corner of the parent berg, rather than having the child berg inherit the exact same position of the parent berg
  • NOAA-GFDL/icebergs@b72ee3c length fix for footloose child bergs
  • NOAA-GFDL/icebergs@32f0e56 fix mass scaling bug in creation of footloose child bergs
  • NOAA-GFDL/icebergs@27c7f75 Update input.nml
  • NOAA-GFDL/icebergs@09a6bae Update input.nml
    MOM6+SIS2+icebergs: finish footloose for bonded conglomerates. Moved rolling to separate solver.
  • NOAA-GFDL/icebergs@d2071bd Fixed angular velocity/rotation terms for dem-mode. Corrected which velocities are used for damping. A bit more development for constant_interaction_LW.
  • NOAA-GFDL/icebergs@693179a assigned initial value of 'none' for fracture_criterion
  • NOAA-GFDL/icebergs@b705b60 partial fix for bond restart
  • NOAA-GFDL/icebergs@decca5c Many changes regarding reading/writing restart files, saving trajectories, and allocating the iceberg/bond variables in preparation for full coupling of this version of the iceberg code with MOM6. Changed the value for traj_sample_hrs and traj_write_hrs that would always force output every timestep from 0 to -1, which fixes a conflict when running with MOM6. Added a 'damage' variable that weakens the stress threshold in areas of pre-existing rifts, crevasses, etc that were inherited from when iceberg was still attached to the ice shelf. Added some experimental options for DEM-mode that (1) track the shear force for fracture purposes but ignore its influence during berg interactions or (2) set the shear force to zero entirely.
  • NOAA-GFDL/icebergs@813c4a3 -Added a scale-invariant DEM-mode, complete with tangential forces, torque, and stress-based fracture criterion (can currently be used during inner MTS sub-steps only) -Added several 'beam' tests for DEM-mode that make sure it can match analytical solutions -Added a fracture-upon-grounding test for DEM-mode -Added an energy-based fracture criterion -New option to use explicit velocity Verlet during MTS inner iterations. This explicit option requires ~2x smaller MTS sub-time steps than the previous partially-implicit scheme, but actually may run faster. Furthermore, the explicit option ensures momentum conservation without needing to iterate to convergence like with the partially-implicit scheme. Currently, DEM-mode always uses this explicit approach. -Fixed radius definition for square packing -Consolidated MTS code to a single evolve_icebergs_mts subroutine -Finished up some documentation
  • NOAA-GFDL/icebergs@ac688c3 removed redundant parameter
  • NOAA-GFDL/icebergs@68611e9 Trying Ubuntu-20.04
  • NOAA-GFDL/icebergs@38ee441 Add graphviz (dot) to package list
  • NOAA-GFDL/icebergs@0aaccd9 Add doxygen to package list
  • NOAA-GFDL/icebergs@61f6cbe Add GH action to verify documentation
  • NOAA-GFDL/icebergs@a21d3d3 Added missing doxygen comments for most of icebergs.F90
  • NOAA-GFDL/icebergs@dbcbf13 Fixed doxygen errors in icebergs_framework.F90
  • NOAA-GFDL/icebergs@54969d2 Added badge and folder descriptions
  • NOAA-GFDL/icebergs@5e75f43 Another try to avoid reading contents.rst on RTS
  • NOAA-GFDL/icebergs@ffda592 Try to avoid reading contents.rst on RTS
  • NOAA-GFDL/icebergs@ca2ed5d First draft for RTD/sphinx
  • NOAA-GFDL/icebergs@fe5e9c1 Corrected source path
  • NOAA-GFDL/icebergs@fd14a22 Changes default value of cdrag_grounding
  • NOAA-GFDL/icebergs@5eae634 Add flag to bypass requirement for restart file
  • NOAA-GFDL/icebergs@3027432 Fix legacy syntax issue with write()
  • NOAA-GFDL/icebergs@2a8a337 Corrected declaration of radial_contact
  • NOAA-GFDL/icebergs@141267f Fixed expression using abs() of logical
  • NOAA-GFDL/icebergs@d6d1c9d Fix integer i/o formatting for gnu compiler
    MOM6+SIS2+icebergs: tests/ground_frac_test and tests/energy_test(1-3) 5. The new test cases each have new berg initialization python scripts (e.g. makeberg.py) 6. Subroutines to save bond trajectories 7. Fixed error in damping scheme, concerning the projection 8. Identification of elements at conglomerate edges, w/ separate melting/force treatment for these edge elements 9. Separated MTS and STS accel subroutines for clarity 10. Some minor changes to MTS scheme, e.g. which velocities used at half-steps (ustar) and damping 11. Experimental MTS iterative schemes that force convergence of damping velocities. For better conserve momentum/for testing the impact on fracture of violating conservation of momentum 12. Conversion of .nc to .csv for elements (nc2csv.py) and bonds (nc2csv.py) to enable correct visualization in programs such as paraview
  • NOAA-GFDL/icebergs@5b59099 New MTS-Verlet parallelization scheme. New 'chaotic' test case for a large number of bergs with pseudo-randomly generated sizes,thicknesses,radii,etc, which serves the purpose of testing the robustness of the MTS scheme with high-parallelization,long timescales,diverse icebergs, and essentially random collision scenarios. Includes a python script w/ slightly different approach for initializing test bergs. Also some fixes regarding MTS+spherical coords.
  • NOAA-GFDL/icebergs@c4355d3 formatting
  • NOAA-GFDL/icebergs@ecaf44e added mts velocity verlet scheme to increase time step size, which includes a routine to pass whole conglomerate bergs between processors. Added separate spring constant for collisions and an option to vary the distance at which contact between bergs occurs. New test cases.
  • NOAA-GFDL/icebergs@2891feb Fix with mpp_sync_self rather than global vars
  • NOAA-GFDL/icebergs@744216f reorg, collision test, fixed bond issues related to initialization and periodic boundaries, renamed diamonds to kid
  • NOAA-GFDL/icebergs@f59cc7d Fixes CM4highres model crash with insufficient virtual memory
  • NOAA-GFDL/icebergs@aa62ce8 add Iceberg_repository
  • NOAA-GFDL/icebergs@3b43d93 restructure for solo-driver and add initial test case
  • NOAA-GFDL/icebergs@a7cc66b Added diagnostics axes
  • NOAA-GFDL/icebergs@1c80144 Corrected README with critical bit for MPI
  • NOAA-GFDL/icebergs@aa759b7 Re-structure to add solo-driver
  • NOAA-GFDL/icebergs@ad861df Fix for single-process tests

MOM6+SIS2+icebergs: Response to the code review
- NOAA-GFDL/MOM6@475212f8c ZB submitted via PR
- NOAA-GFDL/MOM6@e4db92d74 Rotate test is passed. Regression changed (order of operatrions)
- NOAA-GFDL/MOM6@1a38b8812 Filters for ZB. Regression changed (FGR changed to amplitude)
- NOAA-GFDL/MOM6@932816ead Implementation of ZB sheme
MOM6+SIS2+icebergs: Case-insensitive init_external_field
MOM6+SIS2+icebergs: Update time_interp_external functions
MOM6+SIS2+icebergs: Remove MPP-based axis data access
- NOAA-GFDL/MOM6@6038735c4 FMS2 interpolation ID replaced with derived type

MOM6+SIS2+icebergs: Update SIS2 to use the new IO interface

- NOAA-GFDL/SIS2@88d9e32 Update SIS2 to use the new IO interface
- NOAA-GFDL/SIS2@57923db Fix for sigma_i going to zero in ITD landfast ice. (NOAA-GFDL#189)

MOM6+SIS2+icebergs: Replaced type(real) with real in iceberg.F90 subroutine calve_fl_icebergs. Added a .nml that was missing from the footloose test in previous commits. A few empty, but necessary, directories were missing from the test cases in previous commits, so modified the makeberg run files to create these directories.

- NOAA-GFDL/icebergs@a7c0676 Replaced type(real) with real in iceberg.F90 subroutine calve_fl_icebergs. Added a .nml that was missing from the footloose test in previous commits. A few empty, but necessary, directories were missing from the test cases in previous commits, so modified the makeberg run files to create these directories.
- NOAA-GFDL/icebergs@66637d6 removed redundant file
- NOAA-GFDL/icebergs@796d591 Added script to download data for the a68_test. Simplified the conda environment tests/iceberg_env.yml. Edited some READMEs.
MOM6+SIS2+icebergs: update CPP ifdef logic to set "file version"
- NOAA-GFDL/icebergs@338e8b2 more doxy comments
- NOAA-GFDL/icebergs@4248102 doxygen fix?
- NOAA-GFDL/icebergs@3002ee7 Some further cleanup of A68, simplifying the read-in of data
- NOAA-GFDL/icebergs@cdd773a Removed non-DEM breaking of bonds. Previous attempts to account for bond-breaking without DEM-mode was not fully-successful because without DEM torque and shear terms, 'strings' of bonded particles one layer thick would tend to bend unphysically without breaking. Furthermore, the physical basis for non-DEM fracture was lacking compared to DEM-mode fracture, anyway. Therefore, I removed all code related to non-DEM fracture, which substantially simplifies much of the code. For example, this eliminated 6 variables (rotation, n_frac_var, n_strain_rate, accum_bond_rotation, lon_prev, lat_prev).
MOM6+SIS2+icebergs: Cleanup, documentation, and removal of unused features. Also cleaned-up corresponding tests .nmls.
MOM6+SIS2+icebergs: adding footloose=.true. and fl_init_child_xy_by_pe=.true. (for backwards compatibility), and eliminating fl_use_l_scale, fl_l_scale_erosion_only, fl_r, fl_r_s, fl_k_scale_by_perimeter, fl_bits_scale_l, fl_bits_scale_w, and fl_bits_scale_t.
- NOAA-GFDL/icebergs@f4d45da initialize some additional variables for new icebergs in calve_icebergs, for backwards compatibility in chksums when footloose=.true.
MOM6+SIS2+icebergs:
- NOAA-GFDL/icebergs@5a5a175 Modified calve_icebergs so that new berg prev/old velocities and positions are not initialized unless using interactive icebergs. This has no impact except enabling the berg restart chksums to match the reference runs in the om4 regression tests (the regression tests pass either way, but this modification undoes a previous change that caused mismatch in the berg restart chksums only).
- NOAA-GFDL/icebergs@b4ce7eb Fixed calve_icebergs so that the random numbers for tidal drift are only calculated under the new scheme for interpolation of gridded fields to bergs (bergs%old_interp_flds_order=.false.). This prevents a crash in the OM4p5 basic regression test. Added a safeguard that makes sure only Verlet integration is allowed for MTS, DEM, and footloose
- NOAA-GFDL/icebergs@dd55cca tests/collision_tests/makeberg used to be dependent on Alon's scripts in tests/Iceberg_repository, but now moved those few scripts directly to tests/collision_tests/makeberg and deleted tests/Iceberg_repository. This deleted directory was Alon's KID/ice shelf tests on the ISOMIP geometry, which are outdated (e.g. they may rely on specific branches of the coupler and SIS2, and job scripts are not written for slurm)
- NOAA-GFDL/icebergs@9bd3b77 Cleaned up the makeberg directories and files
- NOAA-GFDL/icebergs@7a52136 Removed energy monitoring. While it was previously useful for development, it was also clunky, it only worked in non-DEM mode (without torques), and it added a dozen or so variables. Removed energy-based bond-breaking as well.
MOM6+SIS2+icebergs: fracture_testing_initialization, init_dem_params, uniaxial_test,use_spring_land_contact,and calculate_force_land_contact
- NOAA-GFDL/icebergs@51cba6b more clean up -removed 'dem_shear_for_frac_only' -set new_mts to default -converted some print statements into write statements -removed some old commented code -cleaned up A68a code in icebergs.F90 -added comments for some namelist options -added option 'print_fracture' to write bond/particle info to screen when fracture occurs
- NOAA-GFDL/icebergs@e13d1b6 Removed experimental use_damage and power_ground options
- NOAA-GFDL/icebergs@d7a8bab Added A68 test back into repository and driver. Tested it with new nml option 'use_broken_bonds_for_substep_contact=.true.', which yielded about a 15% speedup compared to previously
- NOAA-GFDL/icebergs@6d4d4d4 Added bond variable 'broken' to track if a bond is broken (1) or intact (0). Added namelist option 'use_broken_bonds_for_substep_contact', which if true, identifies a pair of particles as contacting during the sub-steps if and only if the bond between them is broken (according to the new 'broken' variable'). This is more computationally-efficient than searching for contact pairs in the current and neighboring grid cells. Both the new 'broken' variable and 'use_broken_bonds_for_substep_contact' option can only be used for iKID multiple time step runs in dem-mode (dem=.true.).
- NOAA-GFDL/icebergs@33a8bca removed experimental option to account for ocean/wind curl on particle torque, because it has minimal effect and is therefore unused anyway
- NOAA-GFDL/icebergs@9399b38 Combined the footloose tests into one directory. Also completed a directory of tests for collision using either the original KID scheme, KID+MTS, or iKID. Eliminated unused tests.
MOM6+SIS2+icebergs: consolidated to a single test, tuned, and recorded chksum
- NOAA-GFDL/icebergs@2bf5e75 Added separate test cases for footloose_poisson (calve child bergs from iceberg edges similarly to England et al., 2020, with some geometric features from Huth et al., 2022) and footloose_physical (physically based parameterization of footloose calving of child bergs from iceberg edges, following Huth et al., 2022). Removed the A68a test case from the driver
- NOAA-GFDL/icebergs@28a755d changes towards passing om4p5 jra55 regression tests. In absence of DEM,MTS, or footloose, reset when grid to particle intepolations occur to the original convention. Only save footloose variables in restart files if footloose is active.
- NOAA-GFDL/icebergs@e730ef2 documented file name variables for particle and bond trajectories
- NOAA-GFDL/icebergs@20cb345 reset input_freq_distribution to false, the old default
- NOAA-GFDL/icebergs@1ee47c1 merged in mpp_self_sync modification from dev/gfdl
- NOAA-GFDL/icebergs@b5a4bec Cleanup of beam tests
- NOAA-GFDL/icebergs@2686245 added test dem_test_contact, for varying L_ij, the critical-interactive-length scale, for MTS-DEM simulations. Artifically increasing L_ij is needed to prevent overlapping of conglomerates under contact if their particle radii are low. Also added long_run_no_inc_contact_dist.sh and .nml in tests/a68, to test A68a test without increaing L_ij (it has essentially no effect, given the large particle radii). Some edits to icebergs.F90 to increase computational efficiency.
- NOAA-GFDL/icebergs@b857d37 Delete makeberg-checkpoint.ipynb
- NOAA-GFDL/icebergs@684e66c Delete makeberg.ipynb
- NOAA-GFDL/icebergs@1a02384 -Tuned new run for paper using fewer MTS sub-steps (90 vs 200). Adjusted README accordingly. -Achieved about a 5x speedup by changing code so that forces for only one of the two bonds in a pair have to be evaluated during sub-steps, eliminating the call to process MTS sub-step contact with other elements in the same conglomerate for interior (fully-bonded) elements (to which this contact does not apply), and reducing the search range for this contact when it is needed (for non-fully bonded elements). -Increased parallelization buffer width +1*number_of_bonds to accomodate variable for relative rotation of bonds
MOM6+SIS2+icebergs: 1. reduce number of calculations in calculate_force_dem 2. only enforce “force_convergence” on MTS long step if there is contact between conglomerates -New default Rearth. Can also specify Rearth in the .nml -nml option to use a power-law or linear grounding drag -relative rotation between bonded particles is now tracked as a variable, rather than calculating it from the tracked rotation of each particle. Probably a better approach for simulations over long timescales, where tracked rotation values may become extremely large -Fixed the maximum normal stress criteria to include the influence of bond bending. -Added 2 new fracture criteria based on Skjetne and Hansen 2019 (fracture_criterion=‘computed’ or ‘computer_s’). Currently unused.
- NOAA-GFDL/icebergs@be810d9 added berg velocities to save_short_traj. added option to save trajectories of footloose child bergs with areas exceeding a given threshold
- NOAA-GFDL/icebergs@50d8c28 added footloose bergy bits to grd%bergy_mass diagnostic
- NOAA-GFDL/icebergs@b3e6395 fix diagnostic for gridded melt associated with footloose child bergs
MOM6+SIS2+icebergs: (1) specify an area threshold that must be exceeded to save, (2) save all trajectories when some year is passed (nml parameter save_all_traj_year),  (3) save all trajectories by initial mass class (see nml parameters save_nonfl_traj_by_class, save_traj_by_class_start_mass_thres_n, save_traj_by_class_start_mass_thres_s, traj_area_thres_sntbc) -Added a fix for a floating-error for that sometimes occurred when using input_freq_distribution, where the recalculated distributions would not add up to one.
- NOAA-GFDL/icebergs@16e94cc -Modified perimeter scaling so that the new parent berg shape is determined by subtracting ice from both the length and width, rather than just the length. -Rearranged code so that interpolations from grid to particles occurs outside of evolve_icebergs -set default for input_freq_distribution to True, in accordance with the given default distribution and distribution_n. -Output thickness with trajectories if and only if save_fl_traj=.True. -Set the defauly for save_fl_traj to .True.
- NOAA-GFDL/icebergs@6585a86 more documentation
- NOAA-GFDL/icebergs@40e0d44 (1) Added real nml parameter traj_area_thres, a threshold for berg area (km^2) that must be exceeded to save a non-bonded berg trajectory. This will reduce computational cost of producing trajectory data, by ignoring trajectories of small bergs. The BYU/NIC database of berg trajectories ignores bergs with areas less than 5 km^2, so setting traj_area_thres=5 would be appropriate to generate modeled trajectories for comparison. (2) Added documentation where it was missing.
- NOAA-GFDL/icebergs@677fdb1 fix traj buffer width
- NOAA-GFDL/icebergs@f631618 removed useless nml parameter fl_melt_as_bergy_bits. Added nml parameter save_fl_traj to save masses and footloose parameters in the berg trajectories.
MOM6+SIS2+icebergs: if the random initialization scheme fails to initialize the new berg on the current PE, an attempt is made to initialize it at one of the parent berg corners on the current PE.
- NOAA-GFDL/icebergs@e27b158 -Fixed an error (again) in the calculation for the max number of footloose child bergs that can be calved from a parent berg over a time step. The previous way was often enforcing one less footloose event that it should have, according to England 2020.
MOM6+SIS2+icebergs: allow k>1, and modify fl_bits_src on grid after calving the new berg so that the FL bits budget is still correct
- NOAA-GFDL/icebergs@8c92a8c A few fixes to displace_fl_bergs to ensure new child berg is calved onto the computational domain. Added testing of the option to convert footloose bits to a new berg upon accumulating enough mass.
MOM6+SIS2+icebergs: the original definition, where radius corresponds to the true iceberg area (L*W). (11) Cleaned up the line lengths where namelist parameters are listed in icebergs_framework.F90
- NOAA-GFDL/icebergs@53cb93c When approximating the dimensions of footloose bits, now apply scaling of length, width, and thickness before rolling correction, rather than after
- NOAA-GFDL/icebergs@a43341e fix lon/lat mixup for n/s hemisphere berg calving distribution/initial thickness&mass
- NOAA-GFDL/icebergs@80928ae fixed operator splitting error in footloose thermodynamics
- NOAA-GFDL/icebergs@2133641 quick fix to default N hemisphere initial thicknesses. Removed unnecessary line in footloose part of thermodynamics
- NOAA-GFDL/icebergs@cf1ce33 The mass associated with erosion of FL bits can now be added to bergy bits, rather than melting immediately. Rewrote initialization/calving of new bergs so that values of parameters (initial dimensions, distribution, mass scaling, etc) can be specified separately each hemisphere.
- NOAA-GFDL/icebergs@a9deeea a few minor changes to footloose bits regarding scaling and rolling. Separated the Me and Mv melt functions for footloose bits from parent berg, as these melt terms will be different for the parent berg if there is bonding. Added in footloose bits area when spreading berg mass to grid, assuming that footloose bits have the same thickness as the parent berg (Note this is just an approximation, as FL bergs should not have the same thickness, but not sure at this point if including FL area makes a difference, anyway)
- NOAA-GFDL/icebergs@81f5b84 some minor edits to budgets. Added SST as nml parameter in the driver
- NOAA-GFDL/icebergs@1003d75 separated footloose bits fully from bergy bits, though footloose bits can still be melted as bergy bits with new nml parameter fl_melt_as_bergy_bits. Added fl_bits_scale_l, fl_bits_scale_w, and fl_bits_scale_t nml parameters for specifying scaled dimensions of representative FL bits berg for melting vs. the dimensions of a new fl berg. Modified all budgets code to accomodate fl bits separately from bergy bits
- NOAA-GFDL/icebergs@e720f7e finished preliminary footloose bits option, where footloose bergs are tracked and evolved as a group without advecting away from their parent bergs
- NOAA-GFDL/icebergs@0c6c964 quick fix of a mass calculation error for option where footloose mass added to bergy bits
- NOAA-GFDL/icebergs@a6ec49d fix that should prevent displaced footloose bergs from initializing into land cells. Added option to just convert footloose bergs into bergy bits. Partially implemented option to track footloose bergs similarly to (but separately from) bergy bits, where footloose bergs are tracked with the parent berg, and melted/eroded as a group
- NOAA-GFDL/icebergs@7828b3f added footloose displacement for lat/lon coords as well as cartesian
- NOAA-GFDL/icebergs@fefb646 amended previous footloose option for assigning child berg positions to random corners of parent berg. Now, assign to random positions along edges of parent berg
- NOAA-GFDL/icebergs@a58fa5a added option to position new footloose child bergs to a random corner of the parent berg, rather than having the child berg inherit the exact same position of the parent berg
- NOAA-GFDL/icebergs@b72ee3c length fix for footloose child bergs
- NOAA-GFDL/icebergs@32f0e56 fix mass scaling bug in creation of footloose child bergs
- NOAA-GFDL/icebergs@27c7f75 Update input.nml
- NOAA-GFDL/icebergs@09a6bae Update input.nml
MOM6+SIS2+icebergs: finish footloose for bonded conglomerates. Moved rolling to separate solver.
- NOAA-GFDL/icebergs@d2071bd Fixed angular velocity/rotation terms for dem-mode. Corrected which velocities are used for damping. A bit more development for constant_interaction_LW.
- NOAA-GFDL/icebergs@693179a assigned initial value of 'none' for fracture_criterion
- NOAA-GFDL/icebergs@b705b60 partial fix for bond restart
- NOAA-GFDL/icebergs@decca5c Many changes regarding reading/writing restart files, saving trajectories, and allocating the iceberg/bond variables in preparation for full coupling of this version of the iceberg code with MOM6. Changed the value for traj_sample_hrs and traj_write_hrs that would always force output every timestep from 0 to -1, which fixes a conflict when running with MOM6. Added a 'damage' variable that weakens the stress threshold in areas of pre-existing rifts, crevasses, etc that were inherited from when iceberg was still attached to the ice shelf. Added some experimental options for DEM-mode that (1) track the shear force for fracture purposes but ignore its influence during berg interactions or (2) set the shear force to zero entirely.
- NOAA-GFDL/icebergs@813c4a3 -Added a scale-invariant DEM-mode, complete with tangential forces, torque, and stress-based fracture criterion (can currently be used during inner MTS sub-steps only) -Added several 'beam' tests for DEM-mode that make sure it can match analytical solutions -Added a fracture-upon-grounding test for DEM-mode -Added an energy-based fracture criterion -New option to use explicit velocity Verlet during MTS inner iterations. This explicit option requires ~2x smaller MTS sub-time steps than the previous partially-implicit scheme, but actually may run faster. Furthermore, the explicit option ensures momentum conservation without needing to iterate to convergence like with the partially-implicit scheme. Currently, DEM-mode always uses this explicit approach. -Fixed radius definition for square packing -Consolidated MTS code to a single evolve_icebergs_mts subroutine -Finished up some documentation
- NOAA-GFDL/icebergs@ac688c3 removed redundant parameter
- NOAA-GFDL/icebergs@68611e9 Trying Ubuntu-20.04
- NOAA-GFDL/icebergs@38ee441 Add graphviz (dot) to package list
- NOAA-GFDL/icebergs@0aaccd9 Add doxygen to package list
- NOAA-GFDL/icebergs@61f6cbe Add GH action to verify documentation
- NOAA-GFDL/icebergs@a21d3d3 Added missing doxygen comments for most of icebergs.F90
- NOAA-GFDL/icebergs@dbcbf13 Fixed doxygen errors in icebergs_framework.F90
- NOAA-GFDL/icebergs@54969d2 Added badge and folder descriptions
- NOAA-GFDL/icebergs@5e75f43 Another try to avoid reading contents.rst on RTS
- NOAA-GFDL/icebergs@ffda592 Try to avoid reading contents.rst on RTS
- NOAA-GFDL/icebergs@ca2ed5d First draft for RTD/sphinx
- NOAA-GFDL/icebergs@fe5e9c1 Corrected source path
- NOAA-GFDL/icebergs@fd14a22 Changes default value of cdrag_grounding
- NOAA-GFDL/icebergs@5eae634 Add flag to bypass requirement for restart file
- NOAA-GFDL/icebergs@3027432 Fix legacy syntax issue with write()
- NOAA-GFDL/icebergs@2a8a337 Corrected declaration of radial_contact
- NOAA-GFDL/icebergs@141267f Fixed expression using abs() of logical
- NOAA-GFDL/icebergs@d6d1c9d Fix integer i/o formatting for gnu compiler
MOM6+SIS2+icebergs: tests/ground_frac_test and tests/energy_test(1-3) 5.  The new test cases each have new berg initialization python scripts (e.g. makeberg.py) 6.  Subroutines to save bond trajectories 7.  Fixed error in damping scheme, concerning the projection 8.  Identification of elements at conglomerate edges, w/ separate melting/force treatment for these edge elements 9.  Separated MTS and STS accel subroutines for clarity 10. Some minor changes to MTS scheme, e.g. which velocities used at half-steps (ustar) and damping 11. Experimental MTS iterative schemes that force convergence of damping velocities. For better conserve momentum/for testing the impact on fracture of violating conservation of momentum 12. Conversion of .nc to .csv for elements (nc2csv.py) and bonds (nc2csv.py) to enable correct visualization in programs such as paraview
- NOAA-GFDL/icebergs@5b59099 New MTS-Verlet parallelization scheme. New 'chaotic' test case for a large number of bergs with pseudo-randomly generated sizes,thicknesses,radii,etc, which serves the purpose of testing the robustness of the MTS scheme with high-parallelization,long timescales,diverse icebergs, and essentially random collision scenarios. Includes a python script w/ slightly different approach for initializing test bergs. Also some fixes regarding MTS+spherical coords.
- NOAA-GFDL/icebergs@c4355d3 formatting
- NOAA-GFDL/icebergs@ecaf44e added mts velocity verlet scheme to increase time step size, which includes a routine to pass whole conglomerate bergs between processors. Added separate spring constant for collisions and an option to vary the distance at which contact between bergs occurs. New test cases.
- NOAA-GFDL/icebergs@2891feb Fix with mpp_sync_self rather than global vars
- NOAA-GFDL/icebergs@744216f reorg, collision test, fixed bond issues related to initialization and periodic boundaries, renamed diamonds to kid
- NOAA-GFDL/icebergs@f59cc7d Fixes CM4highres model crash with insufficient virtual memory
- NOAA-GFDL/icebergs@aa62ce8 add Iceberg_repository
- NOAA-GFDL/icebergs@3b43d93 restructure for solo-driver and add initial test case
- NOAA-GFDL/icebergs@a7cc66b Added diagnostics axes
- NOAA-GFDL/icebergs@1c80144 Corrected README with critical bit for MPI
- NOAA-GFDL/icebergs@aa759b7 Re-structure to add solo-driver
- NOAA-GFDL/icebergs@ad861df Fix for single-process tests
@adcroft adcroft deleted the mom6-sis2-icebergs-response-to-the-code-review-2023-06-26-16-12 branch May 17, 2024 17:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants