Hosted by CU logo University of Colorado
Powered by ESGF-CoG logo
Welcome, Guest. | Login | Create Account
ESMF logo
You are at the CoG-CU node

Release Schedule: January 2016

Public releases have an "r" after the release name, e.g. 5_2_0r. Public releases that have been patched are labeled with their patch number e.g. "rp1", "rp2".

AS BUILT: January 2016 ESMF v7.0.0

Task Description
Connect OpenClimateGIS to ESMPy We would like to connect OpenClimateGIS and CyberGIS with ESMPy. This requires that ESMPy has a stable API, this is being done under ticket 3606829. The initial work would include a script that imports both OCGIS and ESMPy and does a conversion between data fields and coordinate structures in both applications. The CyberGIS portion of this ticket is not very well defined at this time.
Evaluate OpenACC use Enable ESMF to run with applications that use OpenACC, and evaluate where OpenACC might improve ESMF performance.
Framework support for mapping accelerator resources to components Prototype the support of components that are interleaved across compute resources to support most effective use of available cores and accelerators. Turning this into a guided process requires that the ESMF virtual machine layer becomes aware of the underlying accelerator hardware.
Enable PIO to be turned on everywhere Complete porting of the Parallel I/O package so that it can be on by default.
Setup ESMF C++ Mesh to be replaceable Modify ESMF so that an alternate internal finite element mesh can be used. This will allow the MOAB mesh software to be introduced.
Replace Mesh creation and other methods to be able to build Fields Shifts to an underlying mesh library with more capabilities.
Convert conservative interpolation to work with MOAB Create a first example and evaluate.
Address advanced Field dictionary issues for NUOPC Implement the CFSS convention.
Change destination to be point list for non-conservative regridding This will enable a regrid destination to be a single point, and will also enable Location Streams to be supported within regridding.
Add per location status output to field regrid store Increase documentation so that there is output for each data point in FieldRegridStore(). This should help users analyze and debug regridding results.
Represent grids with ngons through ESMPy This would allow the Mesh class to represent many sided polygons in the same manner as the weight generation application does.
File to file regrid application Takes data fields+grid specified in a source file and grid in a destination file and regrids the data fields to the destination grid and writes it to the file.
Regrid 3D "Thick" Spherical lines Will support the regridding of a spherical shell with vertical thickness. Using great circles.
Non-conservative regridding on cell center for grid files Support for grid files in GRIDSPEC, UGRID, and ESMF formats in ESMF_RegridWeightGen
Fix problem with proxies involving multiple objects that reference a single object Fix problem where multiple objects that reference a single object produce multiple proxies for the single referenced object after reconcile.  Change the behavior so that, for example, Fields that point to the same Grid produce a single Grid proxy that is referenced multiple times.
Connect LocStreams to Regrid Ben wanted to regrid from a grid to multiple copies of destination points. This seems like it would be a good application of grid->locstream regridding. This ticket also relates to 1893842 where locstream regridding is also mentioned as a subpiece.
Regridding with point cloud as source Eric Hutton and Scott Peckham of CSDMS at CU would like the ability to regrid using a cloud of points as a source. This could be handled like something like nearest neighbor regridding (3103729). They suggest using inverse distance weighting.
Asynchronous I/O components for coupled earth systems Implementation of asynchronous I/O components for coupled earth systems. This may end up as a new NUOPC generic component, e.g. NUOPC_IO.
Added functionality to retrieve names of all ESMF deep objects using ESMF_AttributeGet(). This is the next step in implementing full access to object information through the ESMF Attribute interface. Was: Connect Attributes to class information, phase 2: connect Attributes to Component and other intrinsic class properties.


ESMF v7.1.0

Task Description
FieldBundleCreate packing behavior The Create call would have the same input info as the ESMF_FieldCreate() plus a namelist of the Fields to be put into the FieldBundle. There should also be an internal flag that would disallow adding more Fields after a FieldBundle has been packed.
Handle very high resolution grids This task will ensure that grid remapping functions can support very high resolution grids (<1/10 degree global).
Higher order conservative regridding This second order conservative method will support climate and other modelers who need the smoothing of a higher order method along with conservation.
Memory optimization for sparse matric mulltiply store and transition to 64-bit sequence indices Since the sparse matrix multiply store operation is used to apply interpolation weights, it is a central operation in ESMF. Memory optimization is needed to avoid issues when field being interpolated are defined on large, high resolution grids.
FieldWrite, GridWrite, and MeshWrite to write out object metadata So that FieldCreate (from file), GridCreate (from file) and MeshCreate (from file) work with that file. All to be based on a common I/O layer on top of PIO.
Extrapolation of data points that lie outside the source Regrid to provide nearest neighbor extrapolation of points which lie outside the unmasked source grid.
Dynamic masking during SMM execution Support for dynamic masking of srcArray elements during ASMM executionImplementation of this feature requires rework of some of the ASMM implementation code, down inside of XXE.
Support for additional SCRIP weight file format, also streamlined weight file format Currently ESMF only supports one SCRIP weight file format. It would be good to add the other one which the Met Office (and I think other OASIS users) use. In addition, it would be good to add a weight file which doesn't have all the extra information (Grids, etc.) and which has more sensibly named variables (e.g. src_index, weight_matrix instead of S...)
Move GIS capabilities in ESMPy to production This task is to integrate the capabilities in ESMPy and the OpenClimateGIS package, which is also developed within the NESII/ESMF team.
Refactor MAPL and ESMF to reduce redundancy Locations streams and the exchange grid are objects that are targeted. 
Define MAPL-NUOPC translation strategy This will be completed through prototypes and a report.
Support mesh creation using ragged arrays in the ESMF unstructured file format to support regrid between GIS formats and ESMF The ESMF unstructured file format currently uses a rectangular array (max cell corners x number of cells) to store connections for describing a grid. This is very inefficient when the one of the cells has many more corners than the others. This task is to allow the ESMF format to use a 1D connection list that only uses exactly the space necessary for the connections. 
Create an external demo for the application that generates and applies weights ESMF now has an application which does regridding of data from a source file to a destination file (both generating and applying regridding weights). This task is add an external demo (similar to the one for ESMF_RegridWeightGen) which tests this application on a variety of cases. 
Connect Attributes to class information, phase 3: connect Attributes to Component and other intrinsic class properties

The name and other basic information that comes in through the public class interfaces should be connected to the basic Attribute hierarchy associated with that object.

Complete MOAB evaluation 

Produce the final report which compares the performance of the MOAB finite element library vs. the internal ESMF finite element library.  

Implement driver creation of interleaved resource lists, and prototypes for optimized mediator This task is a step toward automated, optimized mapping of components and data structures to heterogeneous resources.
Prototype model component negotiation and system-wide optimization This task will be  implemented through one or more new NUOPC prorotypes and through the creation of a new mapper class.
Connector to support reference of field data allocations for NUOPC  Currently the NUOPC_Connector prototype assumes that each Component holds on to its own memory allocation for each Field in the import and export State. This is not always the most desirable case. With ESMF 5.2.0r Field creation can be done in a multi-step process, allowing the memory allocation to be delayed, and potentially shared between Components. Need to prototype required metadata that would be used to control sharing of data allocations, and implement the feature in the generic NUOPC_Connector code.


ESMF v7.2.0

Task Description
Convert other interpolation methods to MOAB Part of the MOAB conversion.
Convert other Mesh functionality to MOAB Part of the MOAB conversion.
Higher-order element representation Add support for observational data streams (LocStream) to ESMPy. This will need to be added to the C interface first. Also, the regridding to/from Grids/Meshes should be added and tested for full support. Eric Hutton wanted to use this capability to represent point clouds and do regridding with them.
Regrid of data on Mesh edge locations The idea is to let the user regrid data which is on mesh edges. This should eventually be available in both the offline and online regridding, and for conservative and non-conservative. Probably the easiest way to do this right now is to create a new mesh from the edge one which has the data at nodes (for non-conservative) or cell centers (for conservative). (like a dual-mesh, but different). For the online regridding we probably need to be able to build Fields on Mesh edges, see ticket # 3371542.
Data on edge locations for Mesh To do this we need to be able to figure out how many edges are on each PET and build a distgrid from them, it appears the capability to have edges is already in the low level Mesh, but will need to test it and see if it provides everything, so there is some uncertainty in the time estimate. This is probably a necessary precondition for doing online regridding of edge data.


Last Update: Sept. 26, 2017, 4:28 p.m. by Cecelia DeLuca