80 likes | 226 Views
CVM-H v11.2 Release in a Nutshell. Distribution of a new version of CVM-H that includes: Vs30-based arbitrary precision GTL Extended Region using 1D background model Standardized interface for removing topography Use of AWP simulation to evaluate CVM-H performance
E N D
CVM-H v11.2 Release in a Nutshell • Distribution of a new version of CVM-H that includes: • Vs30-based arbitrary precision GTL • Extended Region using 1D background model • Standardized interface for removing topography • Use of AWP simulation to evaluate CVM-H performance • High performance mesh making tools (if needed)
Improved CVM-H • Model extended with Hadley-Kanamori 1D and Ely’s Vs30 derived GTL, with smoothing between core model, 1d, and GTL. • Command-line query tool enhanced to allow query by depth, named vx_lite. • % vx_lite [-s] [-d] [-v] < input_points > output_mat_props • Where –s option enables SCEC 1D, -d enables query by depth, and –v enables query by elevation. Default query mode is elevation offset. • Addition of a C API to the library that programs can link in to query the model directly. • Programs link in ./lib/libvxapi.a and include the header file ./src/vx_sub.h
VX API Include File (./src/vx_sub.h) /* Model source of the data */ typedefenum { VX_SRC_NR = 0, VX_SRC_HR, …, VX_SRC_GT} vx_src_t; /* Z mode selector (depth, elevation, elevation offset */ typedefenum { VX_ZMODE_ELEV = 0, VX_ZMODE_DEPTH, VX_ZMODE_ELEVOFF } vx_zmode_t; /* Coordinate type, GEO or UTM */ typedefenum { VX_COORD_GEO = 0, VX_COORD_UTM} vx_coord_t; /* Provenance of the data */ typedefenum { VX_PROV_NONE = 0, …, VX_PROV_GTL} vx_prov_t; /* Query structure */ typedefstructvx_entry_t { double coor[3], coor_utm[3]; vx_coord_tcoor_type; float elev_cell[2], topo, mtop, base, moho; vx_src_tdata_src; float vel_cell[3], provenance, vp, vs; double rho; } vx_entry_t; /* Initializer */ intvx_setup(char* data_dir); /* Get version number */ void vx_version(char *ver); /* Set Z mode to either elevation, depth, or elev offset */ void vx_setzmode(vx_zmode_t m); /* Retrieve data point in LatLon or UTM */ void vx_getcoord(vx_entry_t *entry); /* Register user-defined background model handler */ void vx_register_bkg( int (*backgrnd)(vx_entry_t *entry, vx_request_treq_type) ); /* Register SCEC bkg/topo handlers */ void vx_register_scec();
vx_lite application (./src/vx_lite.c) /* Parse options */ while ((opt = getopt(argc, argv, "sdvh")) != -1) { switch (opt) { … } } if ((use_emulation) && (use_depth)) { printf("Cannot have vx emulation and depth mode both enabled!\n"); exit(1); } /* Perform setup */ if (vx_setup(".") != 0) { printf("Failed to init vx\n"); exit(1); } /* Register SCEC 1D background model */ if (use_scec) { vx_register_scec(); } if (use_emulation) vx_setzmode(VX_ZMODE_ELEV); else if (use_depth) vx_setzmode(VX_ZMODE_DEPTH); else vx_setzmode(VX_ZMODE_ELEVOFF); /* Query each point from stdin */ while (!feof(stdin)) { if (fscanf(stdin,"%lf %lf %lf", &entry.coor[0],&entry.coor[1],&entry.coor[2]) == 3) { … /* Set coordinate type */ if ((entry.coor[0]<360.) && (fabs(entry.coor[1])<90)) entry.coor_type = VX_COORD_GEO; else entry.coor_type = VX_COORD_UTM; /* Query the point */ vx_getcoord(&entry); … (Print the output to stdout) … } }
Viz Tools – Slice Tool Examples • Horizontal slice, Vp at depth 0.0m • ./Slice.py hor hor_0_vp.png 0.0 Vp Both • Vertical Profile Slice for Vp between two points • ./Slice.py prof profile1_vp.png -119.292 34.431 -118.966 34.098 Vp Both
Testing • CVM-H distribution has unit tests and a simple acceptance test • Automated Test Framework (cvmtest) used for earthquake scenario GoF testing. Requires components to be installed on a local machine and NICS Kraken. • Unit tests and GoF testing can be run under CruiseControl or manually on command-line
Scientific CVM Application Programs CVM-T Meshing Utilities vx-lite btest-in cencalvm vx Standardized CVM Interface (SCVMI) CVM-S4 CVM-H 6.3 CVM-H 11.1.0 USGS-NC