Unstructured Mesh Conventions for CF Tom Gross NOAA Rich Signell USGS Tom Gross & I have put together a presentation on Unstructured Mesh Conventions for CF We drew straws, so I’m giving the talk. Tom & I are both coastal ocean modelers and we consider ourselves pretty geeky, but the first Java program I ever saw was written by my dad, so draw your own conclusions about programming prowess. ADCIRC EC95 Grid, Luettich, UNC
Unstructured Mesh is Flexibile Uniform Rectilinear Grid Unstructured Mesh Curvilinear Orthogonal Grid
UTG Flexibility
Explosive Growth in Unstructured Mesh Coastal Modeling Yesterday (10 years ago) 2D Tides 2D Storm surge Did not conserve mass locally Today Very high resolution 2D surge/inundation modeling 3D finite volume and discontinuous Galerkin methods conserve mass locally New Coastal Models: FVCOM, ELCIRC, DHI Mike-3DFV, ADCIRC-DG, MOHID
ADCIRC J. Westerink – Notre Dame R. Luettich - UNC
General NOAA Oil Modeling Environment (GNOMETM) Columbia River Estuary Spill (3 hrs after release) C.J. Beegle-Krause, NOAA
FVCOM using LLNL’s “VisIt” Free software based on VTK w/Java,C++,Python interfaces Chen & Cowles, UMASSD
Mesh Topology node = 6 nele = 5 nface = 3 lon(node) lat(node) 1 node = 6 nele = 5 nface = 3 lon(node) lat(node) int ele(nele,nface) 3 [1 3 6] [1 6 4] 4 [6 5 4] [6 3 2] 6 [6 2 5] 5 2
Unstructured Mesh Properties Horizontal coordinates are described by a 1D array of nodes: lon(node), lat(node) Elements (e.g. triangles) are bounded by NFACE nodes (nface=3 for triangles) Topology (Connectivity) is described by an incidence list: int ele(nele,nface) Vertical coordinate described as in structured grid models. Sigma and other stretched grids are common.
QUODDY (3D-FEM) CDL
Simple Matlab Access nc=netcdf(‘fem.nc’); lon=nc{‘lon’}(:); lat=nc{‘lat’}(:); ele=nc{‘ele’}(:); salt=nc{‘salt’}(1,1,:); trisurf(ele,lon,lat,salt) [t,b,jday,u]=CFtime(nc,’time’) title([‘Salt ‘,datestr(jday(1))])
Post CF-discussion CDL
FVCOM 2D Grid Visualization Grid 1 (nodes) Surface elevation (element centers) Vertically-Averaged Velocity
FVCOM 2D Grid Visualization Grid 1 (nodes) Surface elevation (element centers) Vertically-Averaged Velocity
FVCOM (3D FVM) CDL
Staggering & Supermesh? General Mesh Nodes Surface elevation Element Centers Velocity Edge Centers Flux (U●Salt), Geographic (levee, weir, B.C.)
Visualization Grid 2 FVCOM 3D Grid Visualization Grid 3 (nodes/levels) Turbulence quantities (nodes/layers) Scalars (salinity, temperature, etc.) (prism centers) 3-D Velocity
Consequences Hyperslabs are only possible along time and depth dimensions Extraction of lat/lon range of data requires determining points in polygon, and generation of subset topology Interpolation, analysis and visualization routines are all different than for structured grid data
Issues Relationship to GridSpec Relationship to Unidata Common Data Model Meshes with multiple element types (e.g. triangles and quads) High-order FEM methods Edge, boundary and element properties
Existing Unstructured Mesh APIs VTK: Kitware, “Light” data XML, “Heavy” binary XDMF: ARL, “Light” data XML, “Heavy” HDF5 XMDF: ERDC, HDF5 CGNS: AIAA, HDF5 EXODUS II: Sandia, NetCDF Of interest for the Data models that are used
TIN in ArcGIS
Unstructured Adaptive Grid Imperial College Ocean Model (ICOM) Matthew Piggott (Imperial College, UK) The ICOM folks are currently using VTK format, but are switching to CGNS format
Generic Visualization Tools via Standards: IDV from Hawaii from Woods Hole
FVCOM using LLNL’s “VisIt” Free software based on VTK w/Java,C++,Python interfaces Chen & Cowles, UMASSD
Simple Matlab Access nc=netcdf(‘fem.nc’); lon=nc{‘lon’}(:); lat=nc{‘lat’}(:); ele=nc{‘ele’}(:); salt=nc{‘salt’}(1,1,:); trisurf(ele,lon,lat,salt) [t,b,jday,u]=CFtime(nc,’time’) title([‘Salt ‘,datestr(jday(1))])
Existing APIs: Sandia’s Exodus II 236 Pages!
Unstructured Grid Standards Workshop Oct. 16-18, Boulder Colorado NOAA and Unidata sponsored workshop NOAA Oil spill responders wish to unify operational model output so that automated particle tracking methods may be created to aid immediate response in emergency situations. Goals: Create an initial draft of CF metadata standards for describing irregular grids. Create the community process to further the goal of unified output techniques for operational coastal ocean modeling. Support the adoption of CF standards by the ocean modeling community
Unstructured Mesh Priorities CF Conventions (define and adopt) CF APIs (C in addition to Java) CF Reference Applications (e.g. IDV, CDAT, VisIt module) Remark that tools to work with the multiplicity of models is paramount -- cataloging and simulation metadata can come later
XMDF Element Types (3D) Do we actually need to specify such elements in CF? Perhaps not, if all we are concerned with is extruded 2D descriptions and staggered grids.
XMDF (used by SMS) Norm Jones, BYU Cary Butler, ERDC
XMDF element types (1D)
XMDF Element Types (2D)
ERDC’s XMDF 104 pages