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

Updates VSFM and adds EMI #1460

Merged
merged 58 commits into from
Jun 1, 2017
Merged

Updates VSFM and adds EMI #1460

merged 58 commits into from
Jun 1, 2017

Commits on Apr 24, 2017

  1. Adds namelist option to specify domain decompisition for ALM.

    - domain_decomp_type = 'round_robin'        [Default]
                         = 'graph_partitioning' [New scheme]
    
    - Presently domain_decomp_type is only read from namelist file,
      but not used within ALM
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    4eb164b View commit details
    Browse the repository at this point in the history
  2. Adds a subroutine in ALM to read grid-to-grid connectivity

    - If lateral_connectivity = .true., the code attempts to read
      grid-to-grid connectivity information from the domain file.
    
    - This grid-to-grid connectivity information for ALM:
       - Follows the convention used by MPAS.
       - Is saved as cellsOnCell data field within the domain netcdf file.
       - dimname(cellsOnCell) = {'nCells','maxEdges'}
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    cb8c79f View commit details
    Browse the repository at this point in the history
  3. Adds support for decomposing ALM grid via graph partitioning

    - Graph Partitioning (GP) requires PETSc.
    - Presently, GP is only implemented for ALM grid with no
      inactive grid cells.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    7aaa21a View commit details
    Browse the repository at this point in the history
  4. Consolidates the initialization of PETSc in ALM

    Both, VSFM and framework for lateral subsurface connectivity
    require PETSc. Thus, a new subourtine is added that consolidates
    the initialization of PETSc.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    b649382 View commit details
    Browse the repository at this point in the history
  5. Initial implementation of a lateral connectivity framework for ALM

    - The framework requires PETSc.
    - It is based of the unstructured grid framework implemented in PFLOTRAN.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    dec015c View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    480f0f5 View commit details
    Browse the repository at this point in the history
  7. Adds more functionality for laterally connected ALM domain

    - Adds to exchange data for ghost/halo grid cells across
      MPI ranks.
    - Adds subroutine to free up memory
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    fe467ce View commit details
    Browse the repository at this point in the history
  8. Adds update of ALM's ghost subgrid structure

    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    30d898e View commit details
    Browse the repository at this point in the history
  9. Fixes preprocessor statement in ALM-VSFM

    - NAG returns an error with the file is empty
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    9f10c65 View commit details
    Browse the repository at this point in the history
  10. Adds subroutine to count ALM ghost subgrid hierarchy

    Counts up ghost gridcells, landunits, columns, and pfts on
    each MPI task
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    e383c89 View commit details
    Browse the repository at this point in the history
  11. Adds x/y field for each ALM grid cell

    Reads in x/y fields (in meters), if 'xCell'/'yCell' field
    are present within the domain netCDF
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    cadd6ae View commit details
    Browse the repository at this point in the history
  12. Updates the check for ALM ghost subgrid hierarchy

    Adds a check for ghost/halo grid-to-landunit mapping
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    ee455de View commit details
    Browse the repository at this point in the history
  13. Adds subroutine to exchange column-level ALM across MPI tasks

    - Each MPI task can get ghost/halo column level data from it's
      neighbor.
    - The subroutine needs to be called outside OpenMP/clump loop
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    c46719c View commit details
    Browse the repository at this point in the history
  14. Fixes the mapping of neighboring grid cells in ALM

    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    6aa2c7c View commit details
    Browse the repository at this point in the history
  15. Assigns soil properties to ghost/halo colums in ALM

    - Memory is allocated for ghost/halo columns for the following
      soil properties:
      - watsat : porosity
      - hksat  : hydraulic conductivity
      - bsw    : Clapp and Hornberger parameter
      - sucsat : minimum soil suction
    
    - Data for the above mentioned soil properties is exchanges among
      MPI tasks
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    4995927 View commit details
    Browse the repository at this point in the history
  16. Updates to equation-of-state in ALM for VSFM

    Modified the TGDB01 EOS w.r.t pressure. Pressure is now only accounted in the
    computation of density of water when pressure is greater than reference pressure.
    In other words, pressure only affects water density under saturated conditions.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    26eede2 View commit details
    Browse the repository at this point in the history
  17. Adds initial infrastructre to support lateral subsurface flow in ALM

    The initial infrastructure includes:
     - Setup of column-level lateral connectivity of subsurface mesh for VSFM.
     - For an operator split approach of solving VSFM, adds a subroutine to
       compute the lateral flux.
     - Updates to the 1D VSFM solver to account of lateral flux.
    
    Note:
     - Column level lateral connection are only set between columns of
       istsoil type.
     - Though, VSFM solver can now account for lateral flux, the
       SoilWaterMovementMod() isn't updated at this stage to allow
       lateral transport because mass-balance check needs to be
       updated.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    b3df051 View commit details
    Browse the repository at this point in the history
  18. ALM reads additional data specified in MPAS format

    If lateral_connectivity is true, following additional
    data are read from land domain file
     - edgesOnCell
     - nEdgesOnCell
     - areaCell
     - dcEdge
     - dvEdge
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    fe3c8fa View commit details
    Browse the repository at this point in the history
  19. Updates to ALM suburface mesh for VSFM

    ALM subsurface mesh now accounts for geometric attributes
    read in using MPAS format. These new attributes (distance
    between grid cells, distance of edge shared by grid cells,
    and area of grid cell) are required when lateral_connectivity
    is set as true.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    929e4e7 View commit details
    Browse the repository at this point in the history
  20. Minor ALM modifications to avoid compiler failures

    Modifications for the case when flag -DUSE_PETSC_LIB
    is not specified.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    0d8f798 View commit details
    Browse the repository at this point in the history
  21. Adds seepage face BC in ALM VSFM solver

    - In 1D-flow, infiltration is shut off if the top soil layer is
      fully saturated. Thus, the liquid pressure in the soil column
      could only go slightly above atmospheric pressure at max.
    
    - When lateral flows are turned on, seepage face boundary
      condition is needed to allow for exfiltration from the
      soil column.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    4d6f9b9 View commit details
    Browse the repository at this point in the history
  22. Turns on lateral subsurface flow in ALM

    - When lateral_connectivity = .true., lateral flows between
      soil columns is allowed in the VSFM solver.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    171a4e9 View commit details
    Browse the repository at this point in the history
  23. Updates VSFM solver in ALM to saves internal/boundary mass flux

    - The flux is computed between 'upwind' and 'downwind' control
      volumes.
    - Negative values of flux implies, flow occurs from upwind to
      downwind control volume
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    b8ea024 View commit details
    Browse the repository at this point in the history
  24. Adds options to include lateral flows in VSFM

    Following three options are added:
    
    - none               = No lateral flow
    - source_sink        = 1D VSFM solution + Lateral flow modeled as source/sink term
    - three_dimensional  = 3D VSFM solution (only supported for serial run)
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    d647435 View commit details
    Browse the repository at this point in the history
  25. Updates VSFM solver tolerance after an unacceptable solution

    When a solution is unacceptable due to mass balance error threshold,
    reduce PETSc SNES tolerance (solution [stol] or relative [rtol])
    depending on the reason for the convergance of SNES.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    4c0c545 View commit details
    Browse the repository at this point in the history
  26. Restructures VSFM subdirectory in ALM

    - Renames VSFM subdirectory to MPP (Multi-Physics-Problems), since
      the VSFM approach is planned to be used for other physics scheme.
    - Creates subdirectories within MPP top level directory
      - dtypes: For data types
      - vsfm  : For VSFM
      - util  : For utilities
    - Updates ALM build script
    
    [BFB]
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    3e2e061 View commit details
    Browse the repository at this point in the history
  27. Fixes the initialization of lateral flux in ALM.

    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    86772f2 View commit details
    Browse the repository at this point in the history
  28. Splits ALM's thermal model for non-urban and urban cols

    In order to support future developments, the ALM thermal
    model is split into two:
      - For non-urban columns, and
      - For Urban columns
    
    [BFB]
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    67b7739 View commit details
    Browse the repository at this point in the history
  29. Adds a runtime option to specify ALM thermal model

    An option to specify PETSc-based thermal model (use_petsc_thermal_model)
    is added. Presently, the PETSc-based thermal model is not supported.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    c26e2ad View commit details
    Browse the repository at this point in the history
  30. Initial checkin of PETSc-based thermal model for ALM

    - Adds a PETSc based linear solver for the thermal model
      comprising of the following components:
        - Snow,
        - Standing surface water, and
        - Soil
    
    - The PETSc based model uses the same physics formulation as
      the default ALM model.
    
    - DMComposite() from PETSc is used to assembly:
      - Diagonal block matrix: accounts for interactings within a component, and
      - Off-diagonal block matrix: accounts for interactins across compoents.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    4dbff9b View commit details
    Browse the repository at this point in the history
  31. ALM-MPP refactor to reduce dependency on CLM

    Removes unnecessary dependency of ALM-MPP on the
    following CLM modules:
    - clm_time_manager
    - column_varcon
    - decompMod
    - shr_infnan_mod
    - shr_kind_mod
    - spmdMod
    - ColumnType
    - EnergyFluxType
    - GridcellType
    - LandunitType
    - SoilHydrologyType
    - SoilStateType
    - TemperatureType
    - WaterstateType
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    3667265 View commit details
    Browse the repository at this point in the history
  32. Round-2 of ALM-MPP refactor to reduce dependency on CLM

    Removes unnecessary dependency of ALM-MPP on the
    following CLM modules:
    - clm_varcon
    - clm_varctl
    - clm_varpar
    - shr_log_mod
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    2af72db View commit details
    Browse the repository at this point in the history
  33. Rename ALM-MPP files

    Makes the file names be consistent with module name
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    c6ca96f View commit details
    Browse the repository at this point in the history
  34. Round-3 of ALM-MPP refactor to reduce dependency on CLM

    Removes unnecessary dependency of ALM-MPP on the
    following CLM modules:
    - abortutils
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    44a791e View commit details
    Browse the repository at this point in the history
  35. Round-4 of ALM-MPP refactor to reduce dependency on CLM

    Removes unnecessary dependency of ALM-MPP on the
    following CLM modules:
    - domainLateralMod
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    c1ea2ec View commit details
    Browse the repository at this point in the history
  36. Minor fixes to the ALM-MPP refactor

    Removes few outstanding unnecessary dependency of ALM-MPP on
    CLM modules
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    e071169 View commit details
    Browse the repository at this point in the history
  37. Major refactor of ALM PETSc-based thermal model

    This refactor removes the hard coded setup of the ALM's
    PETSc based thermal model from the MPP (multi-physics-problem)
    library. The setup of MPP problem for ALM now occurs in
    the biophysics/mpp/driver/alm directory and setup of other
    problems for benchmark and verification will occur in
    the biophysics/mpp/driver directory.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    7600a8f View commit details
    Browse the repository at this point in the history
  38. Adds a subroutine in VSFM to set MPI rank

    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    4b92f6a View commit details
    Browse the repository at this point in the history
  39. Major refactor of VSFM

    This refactor removes the hard coded setup of the ALM's
    VSFM from the MPP (multi-physics-problem) library.
    The setup of MPP problem for ALM now occurs in
    the biophysics/mpp/driver/alm directory and setup of other
    problems for benchmark and verification will occur in
    the biophysics/mpp/driver directory.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    d2fbdae View commit details
    Browse the repository at this point in the history
  40. Few enhancements and bugfixes in VSFM

    - Residual soil mositure can now be specified a non-zero value.
    - Connection set of a source-sink or boundary condition can be
      updated.
    - Correctly initializes auxvars of a boundary condition.
    - Fixes the update value of boundary condition auxvar.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    af6e0c2 View commit details
    Browse the repository at this point in the history
  41. Few fixes after rebasing the branch

    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    cb9a3c0 View commit details
    Browse the repository at this point in the history
  42. Updates to ALM MPP framework

    Multiple fixes to ALM's MPP to enable multiple coupled governing
    equations.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    9828548 View commit details
    Browse the repository at this point in the history
  43. Removes ALM-MPP dependency on CLM

    Adds use_dynamic_linesearch to SoE base type which is set during initialization
    step. The dependency of SoE base type on clm_varctl is thus removed.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    697c56e View commit details
    Browse the repository at this point in the history
  44. Fixes for lateral hydrology in VSFM

    - Updates the connection_set_type to store type (=horz/vert) for each
      connection within the connection set.
    - Fixes mesh setup for lateral connections.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    fa9c921 View commit details
    Browse the repository at this point in the history
  45. Adds a runtime option to add seepage BC in VSFM

    A new runtime option (vsfm_include_seepage_bc) would add
    seepage face boundary condition to VSFM formulation if
    lateral flow model in on. This seepage face boundary
    condition would allow for water to exfiltrate.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    dca1a36 View commit details
    Browse the repository at this point in the history
  46. Swaps ALM's VSFM code by git submodule

    - Deletes existing VSFM code from ACME git.
    - Adds the VSFM code via git submodule.
    - Updates ALM's configure script.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    46bf459 View commit details
    Browse the repository at this point in the history
  47. Removes unused arguments in ALM VSFM solver

    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    21cf1f6 View commit details
    Browse the repository at this point in the history
  48. Updates VSFM initialization

    In order to support modifications in VSFM, VSFM initialization by
    ALM is updated.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    87cda08 View commit details
    Browse the repository at this point in the history
  49. Updates the ALM-MPP submodule

    - Updates the hash of ALM-MPP submodule, and
    - Minor updates to ALM's initialization of MPP.
    Gautam Bisht committed Apr 24, 2017
    Configuration menu
    Copy the full SHA
    018ece7 View commit details
    Browse the repository at this point in the history

Commits on Apr 28, 2017

  1. Initial checkin of ALM's External Model Interface

    - EMI is used to call external physics formulations
      in MPP (i.e. VSFM and PTM).
    - EMI uses the same version of PETSc as used by MPP (i.e. PETSc > 3.7.x)
    Gautam Bisht committed Apr 28, 2017
    Configuration menu
    Copy the full SHA
    50d55d0 View commit details
    Browse the repository at this point in the history

Commits on May 11, 2017

  1. Minor indentation changes

    Gautam Bisht committed May 11, 2017
    Configuration menu
    Copy the full SHA
    bb85c7e View commit details
    Browse the repository at this point in the history
  2. Removes compilation of deprecated MPP driver

    EMI driver for MPP now replaces MPP driver
    Gautam Bisht committed May 11, 2017
    Configuration menu
    Copy the full SHA
    a3c7cbc View commit details
    Browse the repository at this point in the history

Commits on May 17, 2017

  1. Fixes a build failure with debugging turned on

    Gautam Bisht committed May 17, 2017
    Configuration menu
    Copy the full SHA
    7b2232d View commit details
    Browse the repository at this point in the history
  2. Fixes VSFM for multi-task simulation

    - Memory allocation of column-level filters in EMI are now changed
      such that they are indexed from 1:num_filter instead of begc:endc.
    - During initialization of VSFM, a new column level filter is used
      to unpack data from VSFM into ALM's data structure. This is done
      to avoid overriding column-level data in which VSFM is not active.
    Gautam Bisht committed May 17, 2017
    Configuration menu
    Copy the full SHA
    f941efb View commit details
    Browse the repository at this point in the history
  3. Makes ALM's MPP thread safe

    Gautam Bisht committed May 17, 2017
    Configuration menu
    Copy the full SHA
    0218221 View commit details
    Browse the repository at this point in the history

Commits on May 18, 2017

  1. Corrects the column level mesh information needed by PTM

    The column level mesh attributes (i.e. soil thickness, soil centroid,
    and soil layer interface) are needed by PTM for soil and snow layers
    Gautam Bisht committed May 18, 2017
    Configuration menu
    Copy the full SHA
    2ca6667 View commit details
    Browse the repository at this point in the history

Commits on May 23, 2017

  1. Fixes for PTM

    Bug fixes based on global ALM simulation with PTM.
    Gautam Bisht committed May 23, 2017
    Configuration menu
    Copy the full SHA
    bc031d0 View commit details
    Browse the repository at this point in the history

Commits on May 31, 2017

  1. Removes output of x,y location of ALM domain

    xCell and yCell for the land domain are not set by default.
    Thus, the output of xCell and yCell resulted in failure when
    DEBUG is set to TRUE.
    Gautam Bisht committed May 31, 2017
    Configuration menu
    Copy the full SHA
    ed969b2 View commit details
    Browse the repository at this point in the history