System Tests
System tests generally involve multiple components and framework functions. They are bundled with the ESMF distribution and can be found in the directory esmf/src/system_tests.
Due to data structure rework, not all system tests are in every release. The table below shows which system tests are in which supported internal and public releases.
| Name | Description | In ESMF Versions: |
|---|---|---|
| ArbitraryDistribution | Redistribution of an irregularly distributed logically rectangular Grid using a Field level interface. | 300 |
| ArrayBundleRedist | Testing of the Array Bundle Redist capability between two gridded components | 400r |
| ArrayBundleSparseMatMul | Testing of the sparse matrix multipy capability between two gridded components | 310r-310rp2, 311, 400, 400r |
| ArrayRedist | 2D Array redistribution-transpose. | 310-310p1, 310r-310rp2, 311, 400, 400r |
| ArrayRedist3D | 3D Array redistribution-transpose. | 311, 400, 400r |
| ArrayRedistMPMD | 2D Array redistribution-transpose, with two Gridded Components compiled into separate executables, and executed following the MPMD paradigm. | 310r-310rp2, 311, 400, 400r |
| ArrayRedistOpenMP | 2D Array redistribution-transpose, with two Gridded Components using OpenMP. | 400r |
| ArrayRedistSharedObj | 2D Array redistribution-transpose, with some Components compiled separately from the executable, into shared objects, that are dynamically loaded during run-time. | 400, 400r |
| ArrayScatterGather | Use of ESMF_ArrayScatter() and ESMF_ArrayGather() to redistribute Array data between three different components running on different sets of PETs. | 310-310p1, 310r-310rp2, 311, 400, 400r |
| ArraySparseMatMul | Use of a sparse matrix multiply to redistribute a source Array to a differently distributed destination Array. | 300, 301, 302, 303, 310-310p1, 310r-310rp2, 311, 400, 400r |
| Attribute | Demonstrates the use of Attributes, Attribute hierarchies, and Attribute packages in a multi-component setting. | 311,400, 400r |
| BundleRedistArb2Arb | Redistribution from an arbitrarily distributed Bundle to an arbitrarily distributed Bundle. | 222r-222rp3, 301, 302, 303 |
| BundleRedistBlk2Arb | Redistribution from a block distributed Bundle to an arbitrarily distributed Bundle. | 222r-222rp3, 301, 302, 303 |
| BundleRedistBlk2Blk | Redistribution from a block distributed Bundle to a block distributed Bundle. | 222r-222rp3, 301, 302, 303, 311 |
| CompCreate | Complete Component create with intra-grid communications. | 222r-222rp3, 300, 301, 302, 303, 310-310p1, 310r-310rp2, 311, 400, 400r |
| CompFortranAndC | Verifies that states are transfered accurately between components that are implemented in different languages (Fortran and C). | 311, 400, 400r |
| ConcurrentComponent | Coupling of concurrently executing Gridded Components on exclusive sets of PETs. | 310r-310rp2, 311, 400r |
| ConcurrentEnsemble | Demonstrates how a concurrent ensemble can be written using ESMF. The ensemble configuration changed for the 400r version of this system test. | 400, 400r |
| DirectCoupling | Coupling between three components without returning to an upper level to exchange data. | 310p1, 310r-310rp2, 311, 400, 400r |
| DistDir | Creation of a distributed directory for efficient parallel communications within a Component - basic directory creation and lookups are verified. | 303, 310-310p1, 310r-310rp2, 311 |
| FieldBundleRedistArb2Arb | Redistribution from a arbitrarily distributed FieldBundle to a arbitrarily distributed FieldBundle. | 400r |
| FieldBundleRedistBlk2Arb | Redistribution from a block distributed FieldBundle to a arbitrarily distributed FieldBundle. | 400r |
| FieldBundleRedistBlk2Blk | Redistribution from a block distributed FieldBundle to a block distributed FieldBundle. | 400, 400r |
| FieldBundleSMM | Use of a sparse matrix multiply to redistribute a source FieldBundle to a differently distributed destination FieldBundle. | 310rp2, 311, 400, 400r |
| FieldConcurrentComponent | Demonstrates the use of ESMF coupling framework to couple 2 gridded components with 1 coupler component. The coupler component runs on the union of the PETs that are exclusively allocated to each individual gridded component. | 400, 400r |
| FieldExclusive | Bilinear regridding between two concurrent Gridded Components on different PETs. | 222r-222rp3, 300, 301, 302, 303 |
| FieldHalo | Simple halo operation. | 222r-222rp3, 300, 301, 302, 303 |
| FieldHaloPeriodic | Halo operation on a Field with periodic boundary conditions. | 222r-222rp3, 300, 301, 302, 303 |
| FieldLocStreamSMM | Use of a sparse matrix multiply to redistribute a source Field with Location Stream to a destination Field with Location Stream. | 400r |
| FieldMeshSMM | Use of a sparse matrix multiply to redistribute a source Field with a Mesh to a destination Field with normal block structure Grid. | 400r |
| FieldRedist | Redistribute/transpose data through FieldRedist interface. | 222r-222rp3, 300, 301, 302, 303, 311, 400, 400r |
| FieldRedistArb2Arb | Redistribution from an arbitrarily distributed Field to an arbitrarily distributed Field. | 222r-222rp3, 301, 302, 303, 400r |
| FieldRedistBlk2Arb | Redistribution from a block distributed Field to an arbitrarily distributed Field. | 222r-222rp3, 301, 302, 303, 400r |
| FieldRedistBlk2Blk | Redistribution from a block distributed FieldBundle to another block distributed FieldBundle. | 222r-222rp3, 301, 302, 303, 311, 400, 400r |
| FieldRegrid | Bilinear regridding between different Grids on different DELayouts. | 222r-222rp3, 300, 301, 302, 303, 400r |
| FieldRegridConserv | First order conservative regridding between different Grids on different DELayouts. | 222r-222rp3, 300, 301, 302, 303 |
| FieldRegridDisjoint | Verifies that regridding works correctly between components running on disjoint sets of PETs. | 400r |
| FieldRegridMesh | Verifies that Mesh reconcile works correctly. | 400r |
| FieldRegridMulti | Bilinear regridding between 3D Fields on 2D Grids. | 222r-222rp3, 300, 301, 302, 303 |
| FieldRegridOrder | Bilinear regridding between Grids with different index orders. | 222r-222rp3, 300, 301, 302, 303 |
| FieldRegridOverlap | Verifies that regridding works correctly between components running on partially overlapping sets of PETs. | 400r |
| FieldSparseMatMul | Use of a sparse matrix multiply to redistribute a source Field to a differently distributed destination Field. | 310-310p1, 310r-310rp2, 311, 400, 400r |
| FlowComp | PDE solution in a Component with a Clock. | 222r-222rp3, 300, 301, 302, 303 |
| FlowWithCoupling | PDE solution with coupled Components. | 222r-222rp3, 300, 301, 302, 303 |
| InternalStateEnsemble | Demonstrate how an ensemble can be written using the internal State of ESMF. | 400 |
| RecursiveComponent | Recursive creation of subcomponents and demonstration of a recursive Component call tree. | 310r-310rp2, 311, 400, 400r |
| SequentialEnsemble | Sequential ensemble example using different initial conditions for different ensemble members. | 400r |
| SeqEnsemEx | Sequential ensemble example using different initial conditions for different ensemble members. | 311, 400 |
| SimpleCoupling | Simple coupling. | 300, 301, 302, 303 |
